17

假设字符串“成功完成”显示在网页的某处,有没有办法知道这个字符串是否仅使用 javascript 存在?谢谢。

4

3 回答 3

39

更多细节会有所帮助。可能有更好的方法。但鉴于您提供的信息,这是最好的:

if (
  (
    document.documentElement.textContent || document.documentElement.innerText
  ).indexOf('Done successfuly') > -1
) {
  // Do something...
}

如果您知道 ID 或类名,或者可以以其他方式选择直接包含文本的元素(例如h1#someHeading span ...),那么您可能应该这样做,因为它会更高效并且通常是更简洁的方法。

编辑值得注意:这种方法也会在 SCRIPT 和 STYLE 标签中提取文本,这可能不是你想要的。两者textContent都有innerText跨浏览器的各种怪癖。请参阅此了解更多信息

于 2013-05-14T18:18:53.890 回答
6

试试 .search() 像这样的东西:

document.body.innerHTML.search("Done successfully!");

或者代替 innerHTML,使用 textContent

于 2013-05-14T18:22:00.717 回答
1

最简单的方法是使用 jquery 的 contains 选择器:

if($("*:contains('Hello World')").length > 0)
    console.log('yeah baby');

这种方式还为您提供了文本的容器元素。

于 2013-05-14T18:21:14.420 回答