如何将多个jQuery元素数组合并为单个选择器以统一操作?
解决jQuery合并多个元素集合的问题
哈哈,这种“明明感觉思路对了但就是不生效”的懊恼真的太戳人了!我来帮你把这个坎儿迈过去~
你遇到的问题核心是误解了jQuery构造函数的参数用法:$()的第二个参数是用来指定查找上下文的,不是用来合并已有的jQuery对象的。所以你写的$($b, $c),实际是在$c的范围内重新查找$b匹配的元素,这就导致只有$b的元素被选中,$c完全没起作用。
正确的几种写法:
最推荐:使用
.add()方法
jQuery专门提供了.add()来合并多个DOM元素集合,用法简单直接:$b = $('.b'); $c = $('.c'); $b.add($c).addClass('selected');如果可以直接合并选择器
要是你不需要单独保存$b和$c,也可以直接把两个选择器写在同一个$()里:$('.b, .c').addClass('selected');另一种方法:
$.merge()
也可以用jQuery的工具函数$.merge()来合并两个数组/集合:$b = $('.b'); $c = $('.c'); $.merge($b, $c).addClass('selected');
这样修改后,$b和$c里的所有元素都会被加上selected类啦~
内容的提问来源于stack exchange,提问作者Andy Westmoreland
相关产品推荐
相关产品推荐

