我正在构建一个 Chrome 扩展,它根据匹配某些正则表达式来添加网页链接。我使用 JQuery 从 body 标记中获取所有文本节点,如下所示,然后匹配正则表达式并在必要时添加链接:
$('*', 'body').contents().filter(function() {
return this.nodeType === 3
}).each(function() {
regexMatchFn($(this), $(this).text());
});
因此,这对于 HTML 页面正文中的标记中包含的文本效果很好。但是,我正在测试页面的场景,其中文本未包含在标签中,并且我无法使用上述方法捕获它。
以下是给我带来麻烦的标记示例:
<body>
text-not-captured
<p>text-captured</p>
<p>text-captured</p>
</body>
在这种情况下捕获未捕获文本的最佳方法是什么?
最佳答案
实际上,只需这样做:
$("body").text()
将获取正文中不带标签的所有文本。
不过要小心,因为这也包括 <script>
内的内容标签,这可能不是您想要的。
如果您想获取脚本标记之外的所有内容,您可以这样做:
var all = $("body").html();
console.log($($.parseHTML(all)).text());
关于javascript - JQuery - 查找未包含在标签中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44557546/