gpt4 book ai didi

javascript - 如何在JS中删除appendChild元素

转载 作者:行者123 更新时间:2023-12-01 00:08:29 27 4
gpt4 key购买 nike

所以基本上,我想在单击appendChild 元素后将其删除。我尝试使用 this.remove(),但它不起作用。我手动添加了一些带有 h2 的 div 。当我点击 div 时,我的代码起作用了。当我点击它时,它确实消失了。

代码片段

var div_children = document.getElementById("append-div").children;
var length = div_children.length;
for (var x = 0; x < length; x++){
div_children[x].addEventListener("click", function(){
this.remove();
});
}
function myfunction(){
var new_div = document.createElement("DIV");
new_div.innerHTML = "<h2>New div</h2>";
document.getElementById("append-div").appendChild(new_div);
}
#append-div{
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
#append-div div{
background-color: lightblue;
display: flex;
flex-direction: row;
border-radius: 45px;
border: 1px solid black;
width:fit-content;
height:fit-content;
}
#append-div div h2{
margin:20px;
}
<!DOCTYPE html>
<html>
<head>
<link = rel="stylesheet" type = "text/css" href="styles.css">
<title>Test</title>
</head>
<body>
<button class = "click-me" onclick = "myfunction()">Click Me!</button>
<div id = "append-div"></div>
</body>
</html>

最佳答案

您之前在删除过程中遇到的问题是,代码的第一部分在没有任何子级的情况下运行,即使在您创建新的子级后,它也不会再次运行。

<小时/>

无需循环子级即可添加事件监听器。

只需在创建元素后立即将其添加到子元素即可。

function myfunction() {
var new_div = document.createElement("DIV");
new_div.innerHTML = "<h2>New div</h2>";
new_div.addEventListener("click", function() {
this.remove();
});
document.getElementById("append-div").appendChild(new_div);

}
#append-div {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}

#append-div div {
background-color: lightblue;
display: flex;
flex-direction: row;
border-radius: 45px;
border: 1px solid black;
width: fit-content;
height: fit-content;
}

#append-div div h2 {
margin: 20px;
}
<button class="click-me" onclick="myfunction()">Click Me!</button>
<div id="append-div"></div>

关于javascript - 如何在JS中删除appendChild元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60210351/

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