在jQuery中搜索具有特定文本的元素

时间:2011-12-17 06:34:38

标签: jquery

我想获得一个包含特定文本的元素。当我使用:contains选择器时,结果也是该特定元素的所有父元素。

此外,如果有多个元素实际包含文本,则选择器的结果非常麻烦。是否有可能只获得包含特定文本的元素本身?

谢谢, 乔尔

编辑:

示例:

<body>
    <div>
        <div>
            <div>text</div>
        </div>
    </div>
</body>

和$(“div:contains('text')”)结果为:

[<div>​…​</div>​, <div>​…​</div>​, <div>​text​</div>​]

我想要一种只获取<div>text</div>元素的方法。 (我知道我可以使用.get(-1)来获取最后一个元素,但我想知道是否有更多的gemeric。)

2 个答案:

答案 0 :(得分:3)

您可以尝试以下内容:

$(":contains('text')").each(function() {
  if($(this).find(":contains('text')").length > 0) {
    // ignore. this is just an element containing at least 1 child containing 'text'
  }
  else {
    // this is an element you want, directly contains 'text'
    // .. your code here ..
  }
});

答案 1 :(得分:0)

我不知道这种方式是否合适,但你检查它,如果它不起作用,请评论我为其他解决方案编辑它

$("div[innerHTML=text]")