我在表单上有几个单选按钮,所有单元都按3组分组,单击它们时我需要对它们运行JS函数。在这个函数中,我遍历按下的按钮组中的单选按钮(即,如果该组被称为'abc_name'id,则使用for (var i = 0; i < form.abc_name.length; i++){ }
)。
我想知道是否有办法使用构造的组名以相同的方式操作一组单选按钮?例如,如果我将'xyz'传递给函数,我需要代码为for (var i = 0; i < form.xyz_name.length; i++){ }
。感谢。
答案 0 :(得分:3)
在这两种情况下,确实 正在使用getElementsByName()
;
for (var els = document.getElementsByName(xyz + '_name'), i=0; i<els.length;i++) {
// something on els[i]
}
虽然直接等同于你所得到的:
for (var els = form.elements[xyz + "_name"];, i=0; i<els.length;i++) {
// something on els[i]
}
答案 1 :(得分:3)
function loopDeLoop (xyz) {
var elems = form.elements[xyz + "_name"],
len = elems.length,
i;
for (i=0;i<len;i++){
console.log(elems[i];
}
}
答案 2 :(得分:0)
使用[]
属性语法:
function loop(s) {
s += '_name';
var inputs = form[s];
for (var i = 0; i < inputs.length; ++i) {
...
}
}
当属性键是变量时,这是必要的 - a.b
语法仅在b
为“文字”时才有效。