Javascript 如何单击一个按钮并让它在不知道其ID或类值的情况下删除两个对象?
我要说的两件事是一个文本字段和一个字符串,它表示要显示该文本字段需要键入的HTML。有一个按钮,使这两个东西出现。每次单击此按钮时,都会出现另一对相同类型的按钮。Javascript 如何单击一个按钮并让它在不知道其ID或类值的情况下删除两个对象?,javascript,jquery,Javascript,Jquery,我要说的两件事是一个文本字段和一个字符串,它表示要显示该文本字段需要键入的HTML。有一个按钮,使这两个东西出现。每次单击此按钮时,都会出现另一对相同类型的按钮。 但是,每次生成一个新的对时,我也会在文本字段旁边生成一个按钮,单击该按钮时应该删除文本字段和用它创建的字符串。那么,我该如何做到这一点呢? 我可以在“单击带有类x1的按钮时,删除同样具有类x1的文本字段和字符串”中编程,然后在“单击带有类x2的按钮时,删除同样具有类x2的文本字段和字符串”中编程,等等,但我指的是除此之外的解决方案。
但是,每次生成一个新的对时,我也会在文本字段旁边生成一个按钮,单击该按钮时应该删除文本字段和用它创建的字符串。那么,我该如何做到这一点呢?
我可以在“单击带有类x1的按钮时,删除同样具有类x1的文本字段和字符串”中编程,然后在“单击带有类x2的按钮时,删除同样具有类x2的文本字段和字符串”中编程,等等,但我指的是除此之外的解决方案。
下面是创建文本字段/HTML对的过程:
$(document).ready(function() {
$('#textField').click(function() {
$('#codeBox').append('<div id="divText'+visText+'"><input type="text" class="textfield" maxlength="0" id="visText'+visText+'"><input type="button" value="O" id="o"> <input type="button" value="?" id="que"> <input type="button" value="X" id="closeX"><div id="textCode" class="codeDisplay"><div class="textCode"><div><input type="text" class="textfield" id="text'+textClicked+'"</div><br></div></div>');
$('#codeBox2').append('<div><input type="text" class="textfield" id="text'+textClicked+'"</div><br>')
$(文档).ready(函数(){
$('#textField')。单击(函数(){
$(“#codeBox”).append('divinput type=“text”class=“textfield”id=“text”+textClicked+”/divbr');
$('#codeBox2').append('divinput type=“text”class=“textfield”id=“text”+textClicked+”/divbr'))
如果动态创建元素,则必须从创建元素的代码中获得对元素的引用。创建按钮时,向其添加一个单击侦听器,该侦听器通过闭包使用这些引用:
var text = document.createTextNode("some text");
var input = document.createElement("input");
var button = document.createElement("button");
button.addEventListener("click", function() {
text.parentElement.removeChild(text);
input.parentElement.removeChild(input);
button.parentElement.removeChild(button);
});
你可以用它来做
假设您在单击“添加”按钮时添加类似的内容
单击“删除”时,它将找到其父对象并将其删除
查看jquery的各种树遍历方法:当单击其中一个删除按钮时,这些方法可能会帮助您删除正确的元素。请发布一些代码供我们查看。也请发布生成的代码。
<div>
<div></div>
<button class="remove">remove</button>
</div>
$(document).on("click", ".remove", function(){
$(this).parent().remove();
});