单击它时,不会通过每个()检查复选框

时间:2013-12-16 12:51:06

标签: jquery select checkbox

我已经在.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中触发检查?

3 个答案:

答案 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);
});

Working Demo

答案 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);
    });
}

});