gpt4 book ai didi

javascript - 单击按钮时未将元素添加到 div

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:24 25 4
gpt4 key购买 nike

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="css/bootstrap.css" rel="stylesheet" id="bootstrap-css">
<title>Chat Test</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col">
<div id="AVAInteractArea" class="col mb-4 bg-dark justify-content-center"
style="max-height: 25rem; overflow-y: auto">
<div class="d-flex justify-content-start mb-4">
<h5>
<span class="badge badge-primary">AVA</span>
Hi, how are you?
</h5>
</div>
<div class="d-flex justify-content-end mb-4">
<h5>
Hi, I am good about you?
<span class="badge badge-secondary">You</span>
</h5>
</div>
<script>
function addDiv(parent_div) {
var div = document.createElement('div');
var parent = document.getElementById(parent_div);

div.innerHTML = '<p>TEST</p>';
parent.appendChild(div);
}

var button = document.getElementById('AVAInteractTypeSubmit');
if (button) {
button.addEventListener('click', function () {
// change dynamically your new div
addDiv('AVAInteractArea');
});
}
</script>
</div>
<form class="col-lg-6 offset-lg-3 mb-5">
<div class="row form-group justify-content-center">
<input id="AVAInteractType" type="text"
placeholder="Ask AVA about law"
class="form-control-lg border-white"
style="outline: none"
autofocus="autofocus">
<button id="AVAInteractTypeSubmit" class="btn-lg btn-primary" style="outline: none">Ask</button>
</div>
<button id="AVAInteractSpeak" class="btn-lg btn-primary" style="outline: none">Or speak to AVA</button>
</form>
</div>
</div>
</div>
</body>
</html>

我正在努力做到这一点,以便当我单击带有 id="AVAInteractTypeSubmit" 的按钮时, 它添加了一个 div给家长divid="AVAInteractArea" .但是,每当我运行这段代码时,都没有 div似乎已添加到父级 div .我不知道为什么它不起作用请帮助我。我不想使用 jQuery,我只想要 script 中的 Javascript 代码上面的标签是固定的。

编辑感谢@brk 解决了我的问题。但现在我想做一些不同的事情,我想将所有内容添加到一个专门用于在父 div 中添加 div 的函数,所以我替换了 script 中的所有代码。标记为

function addUserAVAInteraction() {
var div = document.createElement('div');
var parent = document.getElementById('AVAInteractArea');
div.innerHTML = '<div class="d-flex justify-content-end mb-4"><h5>Hi, I am good about you?<span class="badge badge-secondary">You</span></h5></div>';
parent.appendChild(div);
}

然后我给按钮添加了一个属性,onclick="addUserAVAInteraction()" .每当我点击带有 id="AVAInteractTypeSubmit" 的按钮时, 它添加了 div给家长div但只有一秒钟,然后它立即消失。我需要它,就像它如何使用@brk 的解决方案一样,请帮忙。

最佳答案

默认按钮类型是提交。所以在点击按钮时它会刷新。添加 event.preventDefault

function addDiv(parent_div) {
var div = document.createElement('div');
var parent = document.getElementById(parent_div);

div.innerHTML = '<p>TEST</p>';
parent.appendChild(div);
}

var button = document.getElementById('AVAInteractTypeSubmit');
if (button) {
button.addEventListener('click', function(e) {
e.preventDefault();
// change dynamically your new div
addDiv('AVAInteractArea');
});
}
<div class="container">
<div class="row">
<div class="col">
<div id="AVAInteractArea" class="col mb-4 bg-dark justify-content-center" style="max-height: 25rem; overflow-y: auto">
<div class="d-flex justify-content-start mb-4">
<h5>
<span class="badge badge-primary">AVA</span> Hi, how are you?
</h5>
</div>
<div class="d-flex justify-content-end mb-4">
<h5>
Hi, I am good about you?
<span class="badge badge-secondary">You</span>
</h5>
</div>

</div>
<form class="col-lg-6 offset-lg-3 mb-5">
<div class="row form-group justify-content-center">
<input id="AVAInteractType" type="text" placeholder="Ask AVA about law" class="form-control-lg border-white" style="outline: none" autofocus="autofocus">
<button id="AVAInteractTypeSubmit" class="btn-lg btn-primary" style="outline: none">Ask</button>
</div>
<button id="AVAInteractSpeak" class="btn-lg btn-primary" style="outline: none">Or speak to AVA</button>
</form>
</div>
</div>
</div>

关于javascript - 单击按钮时未将元素添加到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com