Jquery复选框勾选/取消选中

前端之家收集整理的这篇文章主要介绍了Jquery复选框勾选/取消选中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Setting “checked” for a checkbox with jQuery?35答案什么是正确的方法来检查/取消选中放置在元素内的复选框,这会触发我的功能
这里是我的代码
<table id="news_list">
<tr>
    <td><input type="checkBox" name="news[1]" /></td>
    <td>TEXT</td>
</tr></table>

$("#news_list tr").click(function() {
    var ele = $(this).find('input');
    if(ele.is(':checked')){
        ele.removeAttr('checked');
        $(this).removeClass('admin_checked');
    }else{
        ele.attr('checked','checked');
        $(this).addClass('admin_checked');
    }
});

问题是我可以检查并取消选中每个框只有一次。我检查了未经检查有时它仍然添加/删除类,但不要再检查一个框(即使我点击复选框,而不是表行)。
我已经尝试使用.bind(‘click’)触发器,但它是一样的结果。

任何解决方案?

解决方法

使用.prop()代替,如果我们与你的代码一起去,然后比较如下:

看看例子jsbin

$("#news_list tr").click(function () {
    var ele = $(this).find(':checkBox');
    if ($(':checked').length) {
      ele.prop('checked',false);
      $(this).removeClass('admin_checked');
    } else {
      ele.prop('checked',true);
      $(this).addClass('admin_checked');
    }
 });

变化:

>将输入更改为:复选框>比较选中的复选框的长度

猜你在找的jQuery相关文章