使用“删除div”;这";使用Javascript
我想做的是通过单击按钮创建一个div。在该div中,如果单击另一个按钮,将删除该div所在的div。因此,第一个按钮可能会创建许多div,其中包含这个delete按钮,但我希望delete按钮只删除它所在的div。有什么建议吗?如果您不需要在页面上保留“删除按钮”,请绑定使用“删除div”;这";使用Javascript,javascript,html,this,Javascript,Html,This,我想做的是通过单击按钮创建一个div。在该div中,如果单击另一个按钮,将删除该div所在的div。因此,第一个按钮可能会创建许多div,其中包含这个delete按钮,但我希望delete按钮只删除它所在的div。有什么建议吗?如果您不需要在页面上保留“删除按钮”,请绑定单击每个按钮上的事件,并在父div的父元素上使用.removeChild。 您可以执行以下操作: <script> var addDiv = (function() { var div = document.c
单击每个按钮上的事件,并在父div的父元素上使用.removeChild
。
您可以执行以下操作:
<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>
var addDiv=(函数(){
var div=document.createElement('div');
div.appendChild(document.createTextNode(“某些文本”);
var button=document.createElement('button');
appendChild(document.createTextNode('Remove…');
button.type=“button”;
返回函数(){
var d=div.cloneNode(真);
var b=按钮克隆节点(真);
b、 onclick=function(){
var d=this.parentNode;
d、 parentNode.removeChild(d);
};
d、 儿童(b);
文件.正文.附件(d);
};
}())
添加div
以上只是一个简单的例子来演示一种方法。请注意,如果克隆元素,则会删除作为属性或addEventListener添加的侦听器(如果不是,则此脚本会简单得多)。HTML:
<input type="button" id='create' value="Create div!"/>
JS:
var i=0;
document.onclick=函数(e){
var t=e.target;
如果(t.id='create'){
t、 parentNode.innerHTML++=“我是孩子”+(++I)+'
;
}
if(t.className=='child'){
t、 parentNode.outerHTML='';
}
};
使用document.onclick并检测目标元素可以作为实时单击来监视新创建的div
时间还早,我的大脑可能有点模糊,代码可能有点脏
这里有一个只需编写代码即可。您的fiddle在Firefox或IE中不起作用,因为正确的DOM方法(您需要调用要删除的对象的父对象)是.removeChild()
。
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 = '';
}
};