我想将一些jQuery行为应用于具有自己的css类的两个元素。
我正在选择这样的两个类......
$(".product-contain, .page-id-31").find("a:has(img)").fancybox({
但是该脚本仅适用于第二选择器。我尝试了各种方法,但想不出一个正确的方法,我真的不想只为其他选择器复制代码。
将脚本应用于上述两个选择器的正确方法是什么?
提前致谢。
答案 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