我想获得一个包含特定文本的元素。当我使用: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。)
答案 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]")