javascript - JQuery - 查找未包含在标签中的文本

标签 javascript jquery html

我正在构建一个 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/

相关文章:

javascript - 为 jQuery UI 对话框创建可选的多个按钮

javascript - d3 js 时间轴稍微偏离/倾斜/移动

javascript - 如何将 JS 变量推送到 json

jQuery 选择器 - 检查当前 div 属性是否包含文本?

javascript - HTML5 数字输入 - 显示为百分比而不是小数

html - ASP.NET 表单输入 - 宽度意外行为(未扩展 100%)

javascript - JS/CSS/HTML : Dropdown option on hover show image

javascript - 有没有办法在 React 组件中运行 AJAX 脚本?

javascript - 在 AngularJS 中使用 jQuery Mobile Adapter - 应用 jqmCompatMode false 以启用 Angular 路由

javascript - 无法从选择列表中选择值