gpt4 book ai didi

javascript - 我如何生成一个带有按钮的文本框,以使用 js DOM 动态关闭它?

转载 作者:行者123 更新时间:2023-11-28 03:22:07 25 4
gpt4 key购买 nike

<html>

<head>
<title></title>
<script>
function show() {
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.id = "textBox";
var btn = document.createElement("button");
btn.innerHTML = "X";
btn.id = "button";
btn.onclick = close;
document.getElementById("display").appendChild(textbox);
document.getElementById("display").appendChild(btn);
}

function close() {
document.getElementById("textBox").style.display = "none";
document.getElementById("button").style.display = "none";
}
</script>
</head>

<body>
<a href="#" onclick="show()">add contact</a>
<div id="display">
</div>
</body>

</html>

在这段代码中,我设法生成带有按钮的文本框。当我们单击第一个生成文本框按钮对中的按钮时,它正在工作。但它不起作用或多对。我需要通过单击每对中的按钮来关闭每对。

最佳答案

属性id在文档中必须是唯一的,使用 class相反,引用具有相同属性的多个元素。您可以使用this对象来引用当前单击的按钮,以便您可以删除正确的元素。

尝试以下方法:

function show(){
var textbox = document.createElement('input');
textbox.type = 'text';
textbox.id = "textBox";
var btn =document.createElement("button");
btn.innerHTML ="X";
btn.class="button";
btn.onclick = close;
document.getElementById("display").appendChild(textbox);
document.getElementById("display").appendChild(btn);
}
function close(){
this.previousElementSibling.remove();
this.remove();
}
<a href="#" onclick = "show()">add contact</a>
<div id = "display"></div>

请注意: previousElementSibling IE9 之前不支持。

这种情况请引用:parentNode or previousElementSibling not working in IE8

关于javascript - 我如何生成一个带有按钮的文本框,以使用 js DOM 动态关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59047670/

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