检查没有Jquery的所有单选按钮

时间:2012-02-05 19:46:00

标签: javascript dom

我想检查多个radiobutton组的第一个元素。

我正在使用Firebug,这就是我不想要的原因,是的,我知道有火问题,但是必须有一种方式,就像过去那样:)

任何帮助你都会很好,事先提前。

2 个答案:

答案 0 :(得分:4)

如果document.getElementsByTagName('input')等于checked,则向后循环true并将type设置为"radio"

如果您尝试检查同一组中的多个按钮,则最后一个按钮将保持不变 因此,向后循环将最终检查每个组中的第一个选项。

答案 1 :(得分:1)

<强>更新

在这里感觉有点傻,你你使用的是Firebug,因此使用Firefox,所以我们有querySelector可用。因此,检查任何给定组中的第一个单选按钮是一行的:

document.querySelector('input[type="radio"][name="theGroupName"]').checked = true;

Live example

querySelector会返回第一个匹配元素,因此上面的内容将返回带有inputtype="radio"的第一个name="theGroupName"元素。然后我们将其checked设置为true

虽然没有做第一个所有组,但是它为你提供了更多的控制权,并且(再次)一个单行 - 为Firebug提供了便利。


原始回答

您可以使用getElementsByTagName按文档顺序获取所有input元素。然后循环遍历它们,只处理type="radio"的那些并记住你所经历的最后name;标记checked = true作为每个名字的第一个。

E.g:

var inputs = document.getElementsByTagName('input');
var lastName, index, input;
for (index = 0; index < inputs.length; ++index) {
    input = inputs.item(index);
    if (input.type.toLowerCase() === "radio") {
        if (input.name !== lastName) {
            lastName = input.name;
            input.checked = true;
        }
    }
}

Live example

如果要将其限制为某个容器,可以使用element version of getElementsByTagName