jQuery一个调用几个动作

阅读几个jQuery性能指南我发现了这个function:

而不是做:

$('#legendGallery).draggable({containment:'#container'}); $('#caption').draggable({containment:'#container'}); $('#controls').draggable({containment:'#container'}); 

做这个:

 $('#legendGallery, #caption, #controls').draggable({containment:'#container'}); 

(一次调用jQuery引擎应用了几个动作)

我想将这个概念应用于一个复选框数组:

     

使用以下代码我想禁用几个复选框:

 $('input:checkbox[name="chl_wms\[\]"][value="m1"]', 'input:checkbox[name="chl_wms\[\]"][value="m2"]', 'input:checkbox[name="chl_wms\[\]"][value="m3"]).prop('disabled', true); 

但它不起作用,没有错误,也没有采取任何行动。

有没有更好的方法来定义选择器? 有没有办法使用一个呼叫执行该命令?

谢谢!

你的选民似乎有一个拼写错误。 另外,jQuery转义字符是\\ ,每个选择器应该在一个字符串中。 考虑到这一点,它应该是:

 $('input:checkbox[name="chk_wms\\[\\]"][value="m1"], input:checkbox[name="chk_wms\\[\\]"][value="m2"], input:checkbox[name="chk_wms\\[\\]"][value="m3"]').prop('disabled', true); 

通过修复它应该工作。

一种比属性选择器更好的替代方法是使用类。 例如:

     ---- $(".flag-disabled").prop("disabled", "disabled"); 

或者甚至更好,使用Ids:

     ---- $("#chk_wms\\[m1\\], #chk_wms\\[m2\\], #chk_wms\\[m3\\]").attr("disabled", "disabled"); 

也许我在这里遗漏了一些东西,但为什么你不能这样做:

 $('.largecheckbox').attr('disabled', 'disabled');