Jquery - 如果item包含一个字符串或另一个字符串,则应用规则

时间:2012-02-15 12:39:34

标签: jquery

希望我能比谷歌更好地解释这个!

我有一个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");
    });

作为一种替代方案,我当然可以使它成为一种功能,但我想“正确地”或以更清洁的方式做到这一点。

您怎么看?

3 个答案:

答案 0 :(得分:2)

尝试这种方式:

$(".container:contains(Word1), .container:contains(Word2)").each(function(){
    $(this).closest("#containerParent").addClass("newClass");
});

答案 1 :(得分:1)

你试过一个逗号吗?

Multiple-selector

答案 2 :(得分:0)

没有明确的or选择器。您可以使用其他选择器并使用,分隔,也可以使用.filter()

$('.container').filter(function() {
    return /Word1|Word2/.test( this.textContent );
}).closest( '.containerParent' ).addClass( 'newClass' );

参考:.filter()

顺便说一句,使用id寻找.closest()似乎有点奇怪,因为ID必须在html标记中是唯一的。