我想做的是通过单击一个按钮来创建一个 div。在该 div 中,如果单击将删除另一个按钮,它将删除它所在的 div。因此,第一个按钮可能会创建许多带有此删除按钮的 div,但我希望删除按钮仅删除它所在的 div。有什么建议么?
问问题
235 次
3 回答
0
HTML:
<input type="button" id='create' value="Create div!"/>
JS:
var i = 0;
document.onclick = function(e) {
var t = e.target;
if(t.id == 'create'){
t.parentNode.innerHTML += '<div>I AM A CHILD '+(++i)+' <input type="button" class="child" value="DELETE ME!"/><br/></div>';
}
if (t.className == 'child') {
t.parentNode.outerHTML = '';
}
};
using document.onclick and detecting the target element can be used as a live click to monitor newly created divs.
Its early and my brain may be a little foggy and the code may be a little dirty
Here is a jsfiddle
于 2013-04-15T05:18:55.380 回答
0
如果您不需要在页面上保留“删除按钮”,请将click
事件绑定在每个页面上,并.removeChild
在父 div 的父元素上使用。
小提琴演示
于 2013-04-15T04:26:17.780 回答
0
您可以执行以下操作:
<script>
var addDiv = (function() {
var div = document.createElement('div');
div.appendChild(document.createTextNode('some text'));
var button = document.createElement('button');
button.appendChild(document.createTextNode('Remove...'));
button.type = "button";
return function() {
var d = div.cloneNode(true);
var b = button.cloneNode(true);
b.onclick = function() {
var d = this.parentNode;
d.parentNode.removeChild(d);
};
d.appendChild(b);
document.body.appendChild(d);
};
}())
</script>
<button onclick="addDiv()">Add a div</button>
上面只是一个简单的例子来演示一种方法。请注意,如果您克隆一个元素,则作为属性添加的侦听器或通过 addEventListener 添加的侦听器将被删除(如果不这样做,此脚本会简单得多)。
于 2013-04-15T04:56:19.427 回答