有几个类似于这个的问题。但我没有在SO上找到这个确切的问题。 (其他地方也没有答案)。
我只需要知道字符串是否显示 AT LEAST ONCE 。字符串可能在HTML中出现不止一次,它被隐藏一次并显示另一次。
它与页面中的可见性有关,不一定在视口中。因此,如果你必须滚动查看它,那也没关系。
更新:我知道:contains
和is(":visible")
这不是问题所在。当然,元素可以嵌套,并且它必须适用于所有情况。
答案 0 :(得分:2)
以下内容应该有效,但它不是最有效的解决方案:
$("body, body *").contents().filter(function () {
return this.nodeType === 3 && this.nodeValue.indexOf("Foo & Bar") >= 0;
}).parent(":visible");
此代码:
1 这意味着包含字符串的最深节点。 :contains
选择器没用,因为它可以返回一个可见元素(实际上是元素的一个分支),它包含一个包含指定字符串的不可见子元素。
2 如果元素的父元素也可见,则元素是可见的
答案 1 :(得分:0)
您可以将:contains与length
一起用于您的身体元素,它会计算匹配的数量。
if($('body:contains("demo")').length){
alert("The world exists");
}else{
alert("The world doesn't exist");
};