Jquery"包含"多个值

时间:2014-04-23 15:25:33

标签: javascript jquery contains

我发现文档中包含文本内的所有div:'thetext',我正在更改此文本:

$("div:contains('thetext'):not(:has(*))").each(function () {

  $(this).text($(this).text() + " anotherTextAddedBefore");

 })

是否可以将内部包含多个值? 我想找到包含的文本:'thetext',还有另一个值,例如:'thetext1','thetext2'等

我想在一个程序中完成它而不是更多:不想使用与我想要找到的文本一样多的程序。

谢谢!

5 个答案:

答案 0 :(得分:10)

这样的选择器提供OR条件 -

$("div:contains('thetext'), div:contains('thetext1'), div:contains('thetext2')")

这样的选择器提供AND条件 -

$("div:contains('thetext'):contains('thetext1'):contains('thetext2')")

演示 - http://jsfiddle.net/jayblanchard/3a72h/

答案 1 :(得分:9)

您可以将多重选择器用作

之类的条件
$("div:not(:has(*))").filter(":contains('thetext'), :contains('thetext2')").each(..)

答案 2 :(得分:3)

你可以有一个数组

var array = ['John', 'Martin'];


$(array).each(function () {

    $("div:contains(" + this + ")").css("text-decoration", "underline");

});

WORKING EXAMPLE

答案 3 :(得分:2)

只需在上面的答案中添加一个点,如果你想选择没有特定值的元素,那么就可以使用

val psum = (sum(5)_)(23) 

作为$("div:not(:contains('thetext'), :contains('thetext1'),:contains('thetext2'))") 条件

答案 4 :(得分:1)

您可以创建一个数组并循环它:

var containsVals = ["text1","text2"];

for(var i=0;i<containsVals.length;i++){
    $("div:contains("+ containsVals[i] +"):not(:has(*))").each(function () {
      $(this).text($(this).text() + " anotherTextAddedBefore");
    });
}