2017-09-03 12 views
0

を私はここにこのコードを持っている:声明は一度だけforループで起こっ - JavaScriptの

for(i = 0;i < 5;i++){ 
    var cond = document.createElement("input"); 
    cond.setAttribute('type', 'radio'); 
    cond.setAttribute('name', 'condition'); 
    cond.setAttribute('value', abc[i]); 
    div1.appendChild(cond) 
    var tc = document.createTextNode(conditions[i]); 
    div1.appendChild(tc); 
    div1.appendChild(linebreak); 
} 

var sskin = document.createElement("Button"); 
sskin.setAttribute('onClick', 'sname()'); 
sskin.innerHTML = "Submit"; 
div1.appendChild(sskin); 
ここ

すべての変数が何を意味するか、次のとおりです。

var div1 = document.createElement("div"); 
linebreak = document.createElement("br"); 

しかし、出力だけにブレークラインを適用しますforループの最後のループすべてのボタンが並べて表示され、ボタンが次の行に表示されます。私はここで何が起こっているのか分かりません。

答えて

1

これは、linebreakがループの外側に定義された単一の要素であるため、各繰り返しでdiv1の最後に移動するだけなので、これが原因です。試してください:

for(i = 0;i < 5;i++){ 
    let linebreak = document.createElement("br"); 
    var cond = document.createElement("input"); 
    cond.setAttribute('type', 'radio'); 
    cond.setAttribute('name', 'condition'); 
    cond.setAttribute('value', abc[i]); 
    div1.appendChild(cond) 
    var tc = document.createTextNode(conditions[i]); 
    div1.appendChild(tc); 
    div1.appendChild(linebreak); 
} 
関連する問題