为数组中的每个元素创建radiobutton

时间:2015-12-14 10:40:40

标签: javascript arrays button radio-button

有人可以帮助我。我正在尝试为数组中的每个元素创建一个单选按钮。

例如: var myarray = [{name:John,name:Max,name:Oliver}{id:1,id:2,id:3}];

获得3个带有id和name的radiobuttons。我怎么能只用JS做到这一点?

2 个答案:

答案 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时,它是原始的,但有一些修复它将工作正常。 **