参见英文答案 >
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'); } });
变化:
>将输入更改为:复选框>比较选中的复选框的长度