Javascript 如果页面上存在字符串,则执行函数

Javascript 如果页面上存在字符串,则执行函数,javascript,jquery,Javascript,Jquery,如果页面上存在特定字符串,我只希望有一个提示,提示“页面包含字符串” 难道不应该这么简单吗: if ('*:contains("This String")') { alert('Page Contains String'); } 本地JS: if(document.body.innerText.indexOf("This String") !== -1){ // Do stuff } 不过,您可能希望使用。取决于您想要/需要支持的浏览器。(textContent不受IE 8或

如果页面上存在特定字符串,我只希望有一个提示,提示“页面包含字符串”

难道不应该这么简单吗:

if ('*:contains("This String")') {
    alert('Page Contains String');
}
本地JS:

if(document.body.innerText.indexOf("This String") !== -1){
    // Do stuff
}
不过,您可能希望使用。取决于您想要/需要支持的浏览器。(
textContent
不受IE 8或更低版本的支持。)

要获得最大兼容性,请尝试以下操作:

var text = document.body.innerText || document.body.textContent;
if(text.indexOf("This String") !== -1){
    //Do stuff
}
试着这样做:

if($("body").text().indexOf("This String") > -1) {
    alert("page contains string");
}
或纯JS:

if (~document.body.textContent.indexOf('This String')) {
    alert("page contains string");
}

创建html的字符串

//Retrieves html string
var htmlString = $('body').html();
indexOf()方法返回字符串中指定值第一次出现的位置。如果要搜索的值从未出现,则此方法返回
-1

var index = htmlString.indexOf("this string");

if (index != -1)
    alert("contains string");
一行

if($('body').html().indexOf("this string") !== -1)
     alert("contains string")

还有一种使用jQuery的方法-

if( $('body:contains(string)').length ) {
    console.log('found it');
};
您的语法有点混乱,但您走的是正确的道路

if ( $('*:contains("This String")').length ) { // you needed an alias to jQuery, some proper parentheses and you must test for length
    alert('Page Contains String');
}

此处可测试-

要添加jQuery库(通常是
美元符号
)、
$('*:contains(“This String”))
jQuery('*:contains(“This String”))
您应该使用'>'比较器,而不是'!==',它会更快。@Apolo:你真的投了我反对票来进行这样的微优化吗?然后对使用jQuery的其他两个答案投反对票。@Aplo谈论优化,但建议使用jQuery。。(脸掌)@Apolo,没有。。
@Apolo之间的区别:他只是说jQuery是一种选择。而且,
document.body
是,它甚至都离得不近。(速度是原来的50倍!)太棒了!这太完美了。非常感谢,先生。哦,你否决了我,因为你也得到了答案。请不要使用jQuery,而不要使用
。。。。始终使用可读代码<代码>~
对开发人员不友好。你真的忽略了我没有的兼容代码吗?我认为没有必要将
.html()
的结果强制转换为string,因为它已经返回了一个字符串。