<div class="aa">
<input type='radio' id="1" name='choices' value='1'/>
<input type='radio' id ="2" name='choices' value='2'/>
<input type='radio' id="3" name='choices1' value='3'/>
<input type='radio' id="4" name='choices1' value='4'/>
</div>
jQuery
$(".aa :radio").change(function() {
var names = {};
$('.aa :radio').each(function() { // find unique names
names[$(this).attr('name')] = true;
});
var count = 0;
$.each(names, function() { // then count them
count++;
});
alert ("count " + count + " length " + names.length); //names length comes up as undefined why?
}).change();
最佳答案
因为names
是一个对象
而不是数组
。在您的示例中,计数将是对象名称中键的长度。
获取键的长度:
var count = 0;
for(var i in names) {
count++;
}
count; // length
或现代浏览器Object.keys(names).length
关于javascript - 为什么长度显示为未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251165/