我想检查多个radiobutton组的第一个元素。
我正在使用Firebug,这就是我不想要的原因,是的,我知道有火问题,但是必须有一种方式,就像过去那样:)
任何帮助你都会很好,事先提前。
答案 0 :(得分:4)
如果document.getElementsByTagName('input')
等于checked
,则向后循环true
并将type
设置为"radio"
。
如果您尝试检查同一组中的多个按钮,则最后一个按钮将保持不变 因此,向后循环将最终检查每个组中的第一个选项。
答案 1 :(得分:1)
<强>更新强>
在这里感觉有点傻,你说你使用的是Firebug,因此使用Firefox,所以我们有querySelector
可用。因此,检查任何给定组中的第一个单选按钮是一行的:
document.querySelector('input[type="radio"][name="theGroupName"]').checked = true;
querySelector
会返回第一个匹配元素,因此上面的内容将返回带有input
和type="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;
}
}
}
如果要将其限制为某个容器,可以使用element
version of getElementsByTagName
。