我这里有这个代码:
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循环中的最后一个循环。所有按钮并排,然后按钮在下一行。我不知道这里发生了什么。
答案 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);
}