0

まず、JavaScript関数でいくつかのdivを動的に作成しています(いくつかのボタンのイベントハンドラー)。各div内にボタンを追加しています

    newdiv.id = counter;
    newdiv.innerHTML = "Product " + (counter + 1) + " <br><input type='text' name='myInputs[]'><button onclick=\"return false;
    document.getElementById('"+counter+"').parentNode.removeChild('"+counter+"');\">Delete item</button>";

ボタンがクリックされたときにそのdivを削除するとします。

それは私のために働いていません。ここで助けていただければ幸いです。

ありがとう

4

5 に答える 5

1

ステートメントの順序が間違っていることは別として、removeChild呼び出しが正しくありません。removeChildID ではなく、DOM 要素を に渡す必要があります。

HTML 文字列を使用してすべての要素を生成することもできますが、イベント ハンドラーを処理する場合は、DOM 要素を直接作成する方がクリーンなアプローチであることがわかります。

newdiv.id = counter;
newdiv.innerHTML = "Product " + (counter + 1) + " <br><input type='text' name='myInputs[]'>";

var button = document.createElement('button');
button.type = 'button'; // see RobG's answer
button.innerHTML = 'Delete item';
button.onclick = function() {
    this.parentNode.parentNode.removeChild(this.parentNode);
};

newdiv.appendChild(button);
于 2013-06-12T00:13:03.190 に答える