2013-07-15 16 views
40

divに複数の行を追加して削除することもできます。私はコンテンツを追加するためのページ上部に「+」ボタンがあります。そして、すべての行の右側に、その行を削除するための ' - 'ボタンがあります。私はこの例ではjavascriptコードを理解できません。JavaScriptを使用してdiv内のHTMLを追加/削除する

これが私の基本的なHTML構造である:

<input type="button" value="+" onclick="addRow()"> 

<div id="content"> 

</div> 

これは、私は、コンテンツのdivの内側に追加したいものである:

<input type="text" name="name" value="" /> 
<input type="text" name="value" value="" /> 
<label><input type="checkbox" name="check" value="1" />Checked?</label> 
<input type="button" value="-" onclick="removeRow()"> 
+1

あなたのJavaScriptコードはこれまで投稿できますか? – elclanrs

+0

@elclanrs私はこのチュートリアルを試してみました:http://www.dustindiaz.com/add-and-remove-html-elements-dynamically-with-javascript/しかし、私の例で動作するようなコードはありませんでした。私は彼が投稿した更新された答えを調べましたが、私はJavaScriptをかなり新しくしているので、コードを実際に理解できませんでした。 –

答えて

74

あなたはこのようにする必要があります。

function addRow() { 
    var div = document.createElement('div'); 

    div.className = 'row'; 

    div.innerHTML = 
     '<input type="text" name="name" value="" />\ 
     <input type="text" name="value" value="" />\ 
     <label> <input type="checkbox" name="check" value="1" /> Checked? </label>\ 
     <input type="button" value="-" onclick="removeRow(this)">'; 

    document.getElementById('content').appendChild(div); 
} 

function removeRow(input) { 
    document.getElementById('content').removeChild(input.parentNode); 
} 
+0

複数の行を追加できます。私の質問は少し不明だったので編集しました。 –

+0

これは複数行をサポートします。 –

+1

ああ、そうです。ちょうどあなたのコードを試してみました。それは今働いている。乾杯! –

-1

は、そのボタンのクラスが言うことができます行います。

`<input type="button" value="+" class="b1" onclick="addRow()">` 

あなたのjsはこのようになります:

$(document).ready(function(){ 
    $('.b1').click(function(){ 
     $('div').append('<input type="text"..etc '); 
    }); 
}); 
+2

彼はjQueryについて言及しなかった。 –

2

この機能を使用して、DOMエレメントに子を追加できます。

function addElement(parentId, elementTag, elementId, html) 

{ 


// Adds an element to the document 


    var p = document.getElementById(parentId); 
    var newElement = document.createElement(elementTag); 
    newElement.setAttribute('id', elementId); 
    newElement.innerHTML = html; 
    p.appendChild(newElement); 
} 



function removeElement(elementId) 

{ 

    // Removes an element from the document 
    var element = document.getElementById(elementId); 
    element.parentNode.removeChild(element); 
} 
1

あなたはそれが私を助けたこのソリューションを試すことができたノードを削除するには

function addRow() 
    { 
     var e1 = document.createElement("input"); 
     e1.type = "text"; 
     e1.name = "name1"; 

     var cont = document.getElementById("content") 
     cont.appendChild(e1); 

    } 
3

を生成するには、次の試してみてください。

var rslt = (nodee=document.getElementById(id)).parentNode.removeChild(nodee); 
関連する問題