我已经在.prop()属性旁边检查了很多问题,但没有获得任何结果。我有如下输入:
<input type="checkbox" name="chk_ignore_few[]" class="chk_ignore_few">
另一个如下:
<input type="checkbox" name="chk_ignore_all" id="chk_ignore_all">
这是我的代码:
$('#chk_ignore_all').click(function() {
$('.chk_ignore_few').each(function(){
$(this).attr('checked', 'checked');
});
});
我用firebug检查了它,看到它循环通过不同的复选框,但它根本不检查它们。我上面的问题是什么?
=============**EDIT**=====================
问题是在项目中使用了jQuery UI并且我没有意识到这一点。实际的复选框隐藏在图片后面,复选框的不透明度为0.有没有办法在jQuery UI中触发检查?
答案 0 :(得分:2)
使用prop()
而不使用attr()
,您不需要each()
$('.chk_ignore_few').prop('checked', true);
答案 1 :(得分:1)
使用prop()代替attr()
,无需使用each()
,
$('#chk_ignore_all').click(function() {
$('.chk_ignore_few').prop('checked', this.checked);
});
答案 2 :(得分:1)
试试这个jsfiddle .. http://jsfiddle.net/ArH5A/2/
我更新了我的小提琴,当你取消选中.chk_ignore_few
#chk_ignore_few
$(document).on("change", "#chk_ignore_all", function() {
if($(this).is(":checked"))
{
$('.chk_ignore_few').each(function(k,fewChk){
$(fewChk).prop('checked', true);
});
}
else
{
$('.chk_ignore_few').each(function(k,fewChk){
$(fewChk).prop('checked', false);
});
}
});