0

私がやりたいのは、ボタンをクリックして div を作成することです。その div には別のボタンがあり、クリックするとその div が削除されます。したがって、最初のボタンは、この削除ボタンを内部に含む多くの div を作成する可能性がありますが、削除ボタンでその div のみを削除する必要があります。助言がありますか?

4

3 に答える 3

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>

上記は、それを実行する 1 つの方法を示す簡単な例にすぎません。要素を複製すると、プロパティとして追加された、または addEventListener によって追加されたリスナーがドロップされることに注意してください (そうでない場合、このスクリプトは非常に単純になります)。

于 2013-04-15T04:56:19.427 に答える
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 = '';
  }
};

document.onclick を使用してターゲット要素を検出すると、新しく作成された div を監視するライブ クリックとして使用できます。

早くて頭がぼんやりして、コードが少し汚れているかもしれません

ここにjsfiddleがあります

于 2013-04-15T05:18:55.380 に答える
0

ページに「削除ボタン」を保持する必要がない場合は、clickそれぞれにイベントをバインドし.removeChild、親 div の親要素で使用します。
フィドルのデモ

于 2013-04-15T04:26:17.780 に答える