2016-10-06 25 views
2

私は動的に作成されたdivにチェックボックスを追加しようとしていますが、divを静的なdivに追加した後です。Javascript動的なdivに要素を追加

document.getElementById(newDiv).appendChild(checkbox)); 

コード

function func(staticDiv){ 
    var newDiv = document.createElement("DIV"); 
    var checkbox = createCheckbox(); 

    document.getElementById(newDiv).appendChild(checkbox); 
    document.getElementById(staticDiv).appendChild(newDiv); 

}

function createCheckbox() { 
    var checkbox = document.createElement("INPUT"); 
    checkbox.setAttribute("type", "checkbox"); 
    checkbox.setAttribute("name", "checkbox"); 
    return checkbox; 
} 
+0

"document.getElementById()"はIDで物事を選択します。 "newDiv"はIDではありません。これはDOM要素への参照です。 – NachoDawg

+0

'staticDiv'は静的divのID、またはdivへの参照を持つ文字列ですか? – Jamiec

答えて

1

をあなたの完全なコードは コード

です
function func(staticDiv){ 
    var newDiv = document.createElement("DIV"); 
    var checkbox = createCheckbox(); 

    newDiv.appendChild(checkbox); 
    document.getElementById(staticDiv).appendChild(newDiv); 
} 

function createCheckbox() { 
    var checkbox = document.createElement("INPUT"); 
    checkbox.setAttribute("type", "checkbox"); 
    checkbox.setAttribute("name", "checkbox"); 
    return checkbox; 
} 

Itあなたが新しく作成したDivウィットIDを取得しようとしているが、div has'nt ID:div30 ID番号を取得しようとしているためです。

+1

ありがとう、それは働いた! ...私のアップヴォート – Joseph

0

問題:私は、この行でこのエラーが出る

TypeError: Cannot read property 'appendChild' of null

:しかし、私はこのエラーを取得していますそれは先ほど作成したnewDiv要素をgetElementByIdメソッドに渡しています。これは文字列でなければなりません。

あなたはおそらく何をしたい:

function func(staticDiv){ 
    var newDiv = document.createElement("DIV"); 
    var checkbox = createCheckbox(); 

    newDiv.appendChild(checkbox); 
    document.getElementById(staticDiv).appendChild(newDiv); 
} 
0

newDivは実際の要素であるので、あなたは、単にこれを行うことができます:ここで

newDiv.appendChild(checkbox); 
staticDiv.appendChild(newDiv);