首页 > 解决方案 > 如何搜索网页上的文本是否与数组中的数据匹配?

问题描述

假设我在浏览器上打开了一个网页,其源代码如下:

<html>
<body>
<p>aaa</p>
<h1>yyy</h1>
<b>ccc</b>
</body>
</html>

我有一个 Greasemonkey 脚本,其中定义了一个 Javascript 数组,如下所示:

var array = ['aaa', 'bbb', 'ccc', 'asds'];

使用 JavaScript 或 JQuery,我如何搜索网页的整个文本以检查页面上的任何文本是否与数组中的任何文本匹配,而不知道文本可能位于哪个元素或类?

标签: javascriptjquerygreasemonkey

解决方案


我希望我有帮助

版本 1

var array = ['aaa', 'bbb', 'ccc', 'ddd', 'asds'];
var x = document.body.innerText;

array.forEach(y => {
    if (x.indexOf(y) > -1) {
        console.log(y);
    }
});
<p>aaa</p>
<h1>yyy</h1>
<b>ccc</b>
<p><h2>ddd</h2></p>

版本 2

var array = ['aaa', 'bbb', 'ccc', 'ddd', 'asds'];
var x = document.body.children;

for (var i = 0; i < array.length; i++) {
    for (var ii = 0; ii < x.length; ii++) {
        if(array[i] === x[ii].innerText) {
            console.log(x[ii]);
        }
    }
}
<p>aaa</p>
<h1>yyy</h1>
<b>ccc</b>
<p><h2>ddd</h2></p>


推荐阅读