有没有更好的方法来做到这一点:
var IsC = $('input[type=checkbox]').attr("checked") == "checked" ? true : false;
答案 0 :(得分:4)
您可以使用:checked selector
var IsC = $('input[type=checkbox]').is(":checked");
或者:
var IsC = $('input[type=checkbox]:checked').length>0;
答案 1 :(得分:2)
$("input[type=checkbox]").is(":checked")
答案 2 :(得分:1)
var IsC = $('input[type=checkbox]').attr("checked") == "checked" ? true : false;
就像说:
var IsC = $('input[type=checkbox]').attr("checked") == "checked";
因为==
将返回true
或false
。 (纯粹是javascript的变化)
jQuery优化(至少在字符数方面)是:
var IsC = $('input:checkbox').is(':checked');
//returns true if at least one checkbox in the document is checked
您可以通过告诉选择器应该在哪里找到输入来添加比较范围:
var IsC = $('#myForm input:checkbox').is(':checked');
答案 3 :(得分:0)
一种方法是使用dystroy发布的解决方案。
另一种方法是使用prop
方法而不是attr
。查看http://api.jquery.com/prop/
elem.checked
// true (Boolean) Will change with checkbox state
$(elem).prop("checked")
// true (Boolean) Will change with checkbox state
elem.getAttribute("checked")
// "checked" (String) Initial state of the checkbox; does not change
$(elem).attr("checked") //(1.6)
// "checked" (String) Initial state of the checkbox; does not change
$(elem).attr("checked") //(1.6.1+)
// "checked" (String) Will change with checkbox state
$(elem).attr("checked") //(pre-1.6)
// true (Boolean) Changed with checkbox state