如何在jquery中定位多个css选择器

时间:2012-12-22 20:15:19

标签: jquery css

我想将一些jQuery行为应用于具有自己的css类的两个元素。

我正在选择这样的两个类......

$(".product-contain, .page-id-31").find("a:has(img)").fancybox({

但是该脚本仅适用于第二选择器。我尝试了各种方法,但想不出一个正确的方法,我真的不想只为其他选择器复制代码。

将脚本应用于上述两个选择器的正确方法是什么?

提前致谢。

3 个答案:

答案 0 :(得分:6)

使用each()通过选择器调用every元素returned,目前仅使用选择器返回的fancybox()索引处的元素调用zero

$(".product-contain, .page-id-31").find("a:has(img)").each(function(){
      $(this).fancybox({
})

答案 1 :(得分:0)

尝试

$.each( [".product-contain", ".page-id-31",.....] , function(i, value){ 

     var el = $(value); 
     el.find("a:has(img)").fancybox({options});

});

答案 2 :(得分:0)

逗号分隔是应用多个选择器的正确方法。 find函数将尝试匹配其应用于的上下文的所有后代。

您的选择器可以重写为:'。classA a.classC,.classB a.classC'如果选择器符合您的意图,那么您的过滤是正确的。

查找将与上下文元素本身不匹配。

另外,如上所述,确保所应用的功能适用于整个结果集,而不仅仅是第一个结果。 FancyBox仅适用于集合中的第一个元素。在这种情况下,您可以应用.each函数循环遍历集合中的所有元素并应用fancyBox