我没有多次执行相同的jquery表达式,而是在$(document).ready
期间填充变量:
var checkboxes = $('#<%=tbl.ClientID %> input[id*="chk"]');
在这里,我正在存储以&#34; chk&#34;结尾的复选框列表。在表格中,&#34; tbl
&#34;在变量复选框中。
稍后,如果没有选中任何复选框,我想禁用按钮。
我试图做类似的事情:
btn.disabled = $(checkboxes:checked').length == 0;
但没有发生任何事情。想法?
答案 0 :(得分:1)
如果您已经有一个jQuery集合,则可以将其过滤掉。您可以使用$.fn.filter
method有条件地排除/包含新集合中的项目,或使用$.fn.find
之类的内容传递新的选择以匹配所有孩子。
答案 1 :(得分:0)
checkbox
是一个jQuery对象。你试图像字符串一样使用它。
您可以获取jQuery对象中已有的复选框列表,然后将其过滤到结果,该结果只是当前检查的结果,然后检查其长度,如下所示:
btn.disabled = checkboxes.filter(":checked").length === 0;
或者,您可以从头开始运行一个全新的选择器,将":checked"
与之前的选择器合并。