Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“删除div”;这";使用Javascript_Javascript_Html_This - Fatal编程技术网

使用“删除div”;这";使用Javascript

使用“删除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。在该div中,如果单击另一个按钮,将删除该div所在的div。因此,第一个按钮可能会创建许多div,其中包含这个delete按钮,但我希望delete按钮只删除它所在的div。有什么建议吗?

如果您不需要在页面上保留“删除按钮”,请绑定
单击每个按钮上的
事件,并在父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 = '';
  }
};