JavaScript 文本节点

标签 javascript while-loop

尝试用 javaScript 创建基本测验。我下面的代码似乎只输出单选按钮,而不输出随附的标签。为什么是这样?完整内容如下 fiddle 。谢谢

while(i<length){
    var radioBtn = document.createElement("input");
    var label = document.createElement("label");
    radioBtn.setAttribute('type','radio');
    radioBtn.id = i;
    label.appendChild(document.createTextNode(data[0].choices[i]));
    radioBtn.appendChild(label);
    form.appendChild(radioBtn);
 i++
}

最佳答案

您正在尝试将标签放入输入中。输入不能有子节点。

您想要将输入放入标签内。

这就是您应该追求的目标:

<label>
    <input type="radio">
    Hello
</label>

这就是您的代码尝试执行的操作:

<input type="radio">
    <label>
        Hello
    </label>
</input>

更改:

label.appendChild(document.createTextNode(data[0].choices[i]));
radioBtn.appendChild(label);
form.appendChild(radioBtn);

label.appendChild(radioBtn);
label.appendChild(document.createTextNode(data[0].choices[i]));
form.appendChild(label);

关于JavaScript 文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26046631/

相关文章:

bash - OS X bash 脚本 WHILE 循环中的多个条件

C: scanf 没有在无限循环中停止

javascript - 如何为第二个列表项应用默认事件类

javascript - 如何在 javascript 中使用 map() 从 javascript 对象中提取数据?

javascript - ng-repeat - 如何避免复制 div 的输入内容

php - 循环包含一个变量

Java - 在 Switch Case 中调用另一个输入方法

javascript - 如何从 Marionette.js ItemView 模板访问 Backbone.Model 方法?

javascript - React-Bootstrap 工具提示需要覆盖错误

c++ - 文件 I/O 行尾