0

也许这是非常基本的,但我对 radios.length 属性有一些问题。我有一些这样的输入:

<input type="radio" name="name1" value="test1" checked='checked'/><br />
<input type="radio" name="name2" value="test2" checked='checked'/><br />

当我提醒 radios.length 属性时,我总是有 0 作为答案。有人可以解释为什么吗?

4

3 回答 3

1

radios.length不是 DOM 中的有效属性。您需要找到那些(在这种情况下是输入的),然后在其上使用 length 属性。

var radios = document.getElementsByTagName("input") ;

alert(radios.length) // this will alert the correct value

更新

要仅选择单选按钮,您可以执行此操作

var radios = document.getElementsByTagName("input") ;
var checkBoxes = [];

for(​var i =0, len = radios.length; i< len;i++){
    if(radios[i].type === 'radio'){
        checkBoxes.push(radios[i]);
    }
};

console.log(checkBoxes)​

检查小提琴

此外,如果您使用 jQuery,请不要忘记将您的脚本封装在DOM Ready处理程序中

jQuery

$('#radio1').attr('type') // Need to use the .attr() method

jQuery小提琴

于 2012-11-07T20:13:26.957 回答
1

radios不是浏览器中的有效对象。您需要在 DOM 中搜索inputs.

使用 jQuery:

$("input[type=radio]").length

会给你2

在原始 javascript 中,您可以执行以下操作:

document.getElementsByTagName("input") 

但这会给你所有<input>的元素。

于 2012-11-07T20:07:58.877 回答
1

您还可以使用 document.querySelectorAll()。它允许通过 css 选择器检索元素,并且被所有主流浏览器支持,包括 IE >= 8。

document.querySelectorAll('input[type=radio]').length

http://jsfiddle.net/fNhmr/

https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

于 2012-11-07T20:15:49.730 回答