也许这是非常基本的,但我对 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 作为答案。有人可以解释为什么吗?
也许这是非常基本的,但我对 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 作为答案。有人可以解释为什么吗?
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
radios
不是浏览器中的有效对象。您需要在 DOM 中搜索inputs
.
使用 jQuery:
$("input[type=radio]").length
会给你2
在原始 javascript 中,您可以执行以下操作:
document.getElementsByTagName("input")
但这会给你所有<input>
的元素。
您还可以使用 document.querySelectorAll()。它允许通过 css 选择器检索元素,并且被所有主流浏览器支持,包括 IE >= 8。
document.querySelectorAll('input[type=radio]').length
https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll