有没有办法查询以前从jquery表达式填充的集合?

时间:2014-11-11 00:00:23

标签: jquery

我没有多次执行相同的jquery表达式,而是在$(document).ready期间填充变量:

var checkboxes = $('#<%=tbl.ClientID %> input[id*="chk"]');

在这里,我正在存储以&#34; chk&#34;结尾的复选框列表。在表格中,&#34; tbl&#34;在变量复选框中。

稍后,如果没有选中任何复选框,我想禁用按钮。

我试图做类似的事情:

btn.disabled = $(checkboxes:checked').length == 0;

但没有发生任何事情。想法?

2 个答案:

答案 0 :(得分:1)

如果您已经有一个jQuery集合,则可以将其过滤掉。您可以使用$.fn.filter method有条件地排除/包含新集合中的项目,或使用$.fn.find之类的内容传递新的选择以匹配所有孩子。

http://api.jquery.com/category/traversing/在线阅读。

答案 1 :(得分:0)

代码中的

checkbox是一个jQuery对象。你试图像字符串一样使用它。

您可以获取jQuery对象中已有的复选框列表,然后将其过滤到结果,该结果只是当前检查的结果,然后检查其长度,如下所示:

btn.disabled = checkboxes.filter(":checked").length === 0;

或者,您可以从头开始运行一个全新的选择器,将":checked"与之前的选择器合并。