语句只在for循环中发生一次 - JavaScript

时间:2017-09-03 00:04:55

标签: javascript html for-loop button

我这里有这个代码:

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");

但是,输出仅将breakline应用于for循环中的最后一个循环。所有按钮并排,然后按钮在下一行。我不知道这里发生了什么。

1 个答案:

答案 0 :(得分: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);
}