有人可以帮助我。我正在尝试为数组中的每个元素创建一个单选按钮。
例如:
var myarray = [{name:John,name:Max,name:Oliver}{id:1,id:2,id:3}];
获得3个带有id和name的radiobuttons。我怎么能只用JS做到这一点?
答案 0 :(得分:0)
对象({}
)不是数组,也没有保证顺序。因此,您必须创建一个数组数组或对象数组{name: 'John', id: 1}
。
您提供的数组无论如何都是无效的(对象之间没有昏迷,名称周围没有引号。
示例:
var people = [{name: 'John', id: 1}, {name: 'Greg', id: 2}, {name: 'Susan', id: 3}];
people.forEach(function(person) {
var label = document.createElement('label');
label.innerHTML = person.name;
var input = document.createElement('input');
input.type = "radio";
input.name = "person";
input.value = person.id;
document.body.appendChild(label);
document.body.appendChild(input);
});
答案 1 :(得分:0)
for(var c=0; c<=myarray.length; c++)
{
createRadioElement(myarray[c], checked , c);
}
function createRadioElement(name, checked , id) {
var radioHtml = '<input type="radio" id="' +id+'" name="' + name + '"';
if ( checked ) {
radioHtml += ' checked="checked"';
}
radioHtml += '/>';
divIWantToAppendTo.innerHTML += radioHtml;
}
**你不需要一个对象就可以创建一个数组。可以通过遍历数组来分配ID。因此,计数0是第一个人的ID,依此类推。不是很复杂,但对于像这样的小程序应该没问题。我没有测试过这个,但它应该可行。循环遍历你的数组,每次都传递一个名称,检查和ID的值,每次调用函数并创建一个无线电并将其添加到父div时,它是原始的,但有一些修复它将工作正常。 **