[英]Splice function in javascript not working properly
单击上的按钮应生成单选按钮,一次一个,但我对应该坚持使用单选按钮的文本节点有疑问。 这是代码的一部分:
var array = [];
items = document.getElementById("items").value.split(",");
for (var i = 0; i < items.length; i++) {
array.push(items[i]);
}
type = document.getElementById("type");
container = document.getElementById("container");
if (type.value == "radio") {
radio = document.createElement("input");
radio.setAttribute("type", "radio");
for (var i = 0; i < array.length; i++) {
text = document.createTextNode(array[0]);
container.appendChild(text);
container.appendChild(radio);
array.splice(0,1);
}
}
所以这就是结果,但我希望第一个单选按钮的值为“1”,第二个为“2”等。
开始步骤你不需要array
的items
阵列已经包含文本输入你想要的元素
甲LSO无需切片/接续任何阵列
Ÿ我们的问题是,你必须创建为每一个元素另一种独特的无线电元素,所以你没被追加相同的无线电元素很多次,这导致加一次的单选按钮是什么
所以你必须把radio = document.createElement("input"); radio.setAttribute("type", "radio");
radio = document.createElement("input"); radio.setAttribute("type", "radio");
在 for 循环内。 . . . 😘😘
function Z() { items = document.getElementById('items').value.split(","); type = document.getElementById("type"); container = document.getElementById("container"); container.innerHTML = ""; if (type.value == "radio") { for (var i = 0; i < items.length; i++) { text = document.createTextNode(items[i]); radio = document.createElement("input"); radio.setAttribute("type", "radio"); container.appendChild(text); container.appendChild(radio); } } }
<input onkeyup="Z()" id="items"> type: <select id="type"> <option value="radio">Radio</option> <option value="checkbox">Text</option> </select> <div id='container'></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.