-1

我做了这样的事情来检查所有复选框都被选中:

var container = $("#container");
$(container).find("input[type='checkbox'][checked != 'checked']").length == 0

但是当我使用选中的属性来检查至少一个框被选中时,它总是给我长度= 0,我的代码如下:

 $(container).find("input[type='checkbox'][checked = 'checked']").length > 0 

区别在于第一个代码片段我使用了“!=”,而第二个代码片段我使用了“=”。那么为什么它在第二种情况下不起作用?

我知道我可以通过以下方式让它工作:

  $(container).find("input[type='checkbox']:is('checked')").length > 0 
  $(container).find("input[type='checkbox']:checked").length > 0

但仍然想了解为什么上面的东西不起作用:O

我不知道这是否是原因,但我选择了所有复选框,这是通过为所有复选框设置“已选中”属性值来实现的

$(container).find("input[type='checkbox']").attr("checked","checked")

对于取消选择我拥有的所有复选框:

$(container).find("input[type='checkbox']").removeAttr("checked","checked")

可能是因为我在取消选择时删除了 attr 检查,当我通过 UI 再次单击复选框时,我没有得到它的检查属性值。是这样吗?

4

1 回答 1

0

然后试试这个

$('#container').find("input[type=checkbox]:checked").length > 0

或者

$.each($("input[type=checkbox]:checked"), function() {

alert('Checked')

});

http://jsfiddle.net/kabichill/hAv3z/

于 2013-01-18T06:38:22.017 回答