使用解释的变量名称循环遍历窗体上的单选按钮

Loop through radio buttons on a form using a construted variable name

本文关键字:窗体 遍历 单选按钮 循环 解释 变量名      更新时间:2023-09-26

我在表单上有几个单选按钮,全部分组为 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++){ }代码。谢谢。

使用方括号表示法。

function loopDeLoop (xyz) {
    var elems = form.elements[xyz + "_name"],
        len = elems.length,
        i;
    for (i=0;i<len;i++){
        console.log(elems[i];
    }
}

在这两种情况下,您都应该使用 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]
}

使用[]属性语法:

function loop(s) {
   s += '_name';
   var inputs = form[s];
   for (var i = 0; i < inputs.length; ++i) {
       ...
   }
}

当属性键是变量时,这是必需的 - a.b语法仅在b是"文字"时才有效。