Jquery名称选择器

时间:2014-02-12 14:41:42

标签: javascript jquery

遇到了这个问题:

<input type="checkbox" name="fasdf" value="1" id="dsasd" ></input>
<input type="checkbox" name="fasdf" value="2" id="hjiuhhjb" ></input>
<script type="text/javascript" src="/asdf/js/jquery-1.11.0.min.js"></script>
<script>
    var numberChecked = jQuery("input[name='fasdf']").length;
    alert(numberChecked);
    jQuery("input[name='fasdf']").attr('checked', true);
</script>

numberChecked始终返回1,并选中第一个复选框。如果我更改第一个复选框的名称,则选中第二个复选框。为什么呢?

提前致谢

已编辑:功能已删除

1 个答案:

答案 0 :(得分:0)

因为你给了复选框相同的名字 一些jQuery函数仅针对第一个匹配元素(在您的情况下,您的目标是多个) 当您更改第一个复选框名称时,目标唯一的复选框是#hjiuhhjb 这是一个简单的解决方案:

jQuery("input[name='fasdf']").each(function(){
    $(this).attr('checked', true);
});

.each()会迭代匹配的所有元素(更多:.each