希望我能比谷歌更好地解释这个!
我有一个Jquery规则,它检测某个单词,然后将一个类应用于那个按预期工作的元素父容器。 我不想简单地将这个规则复制到其他单词中,而是将它们作为“OR”有效地包含在规则中。
这就是我的工作: -
$(".container:contains(Word1)").each(function(){
$(this).closest("#containerParent").addClass("newClass");
});
这是无效的尝试: -
$(".container:contains(Word1)"|".container:contains(Word2)").each(function(){
$(this).closest("#containerParent").addClass("newClass");
});
作为一种替代方案,我当然可以使它成为一种功能,但我想“正确地”或以更清洁的方式做到这一点。
您怎么看?
答案 0 :(得分:2)
尝试这种方式:
$(".container:contains(Word1), .container:contains(Word2)").each(function(){
$(this).closest("#containerParent").addClass("newClass");
});
答案 1 :(得分:1)
你试过一个逗号吗?
答案 2 :(得分:0)
没有明确的or
选择器。您可以使用其他选择器并使用,
分隔,也可以使用.filter()
$('.container').filter(function() {
return /Word1|Word2/.test( this.textContent );
}).closest( '.containerParent' ).addClass( 'newClass' );
参考:.filter()
顺便说一句,使用id
寻找.closest()
似乎有点奇怪,因为ID必须在html标记中是唯一的。