首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用jQuery检查整个页面是否包含文本吗?

问我可以使用jQuery检查整个页面是否包含文本吗?
EN

Stack Overflow用户
提问于 2015-09-12 04:24:34
回答 4查看 2.6K关注 0票数 2

有没有一种方法可以使用jQuery来判断整个网页是否包含一些文本?例如,在StackOverflow上,通过在控制台中使用以下命令,我可以返回任何包含单词"Badges“的div:

代码语言:javascript
复制
$("div:contains('Badges')")

然而,当我写下:

代码语言:javascript
复制
$(document:contains('Badges'))

或

代码语言:javascript
复制
$("document:contains('Badges')")

我得到一个错误。如何检查页面上的任何元素是否包含某些文本并返回这些元素?

EN

回答 4

Stack Overflow用户

发布于 2015-09-12 04:27:02

尝试:

代码语言:javascript
复制
$("html:contains('Badges')")

您还可以使用:

代码语言:javascript
复制
$("body:contains('Badges')")
票数 1
EN

Stack Overflow用户

发布于 2015-09-12 04:44:21

$("*").filter(function() { return $(this).text() ==="Badges";});

这个函数还会检查内部的子对象的内容。

编辑:更改为只返回具有确切内容的元素作为“徽章”。

票数 1
EN

Stack Overflow用户

发布于 2015-09-12 18:38:40

要只选择包含文本的最深节点,请使用如下所示的内容

代码语言:javascript
复制
var textToFind = 'Badges';

$(function(){
  var allTextNodes = $("*").contents().filter(function () {
    return this.nodeType === Node.TEXT_NODE;
  });
  
  var matchingNodes = allTextNodes.filter(function(){return this.textContent.indexOf(textToFind) > -1;}).parent();

  // matchingNodes is a list of all nodes (tags) that contain the searched text
});

或以插件形式

代码语言:javascript
复制
$(function(){
  $.fn.nodesWithText = function(textToFind){
    var allTextNodes = $("*", this)
                        .addBack()
                        .contents()
                        .filter(function () {
                          return this.nodeType === Node.TEXT_NODE;
                        }),
        matchingNodes = allTextNodes
                          .filter(function(){
                            return this
                              .textContent
                              .indexOf(textToFind) > -1;
                          });
    return matchingNodes.parent();
  };
});

您可以将它用作$(document).nodesWithText('Badges');,它将搜索整个文档中具有指定文本的任何元素,或者$('div').nodesWithText('Badges');将在div元素中搜索包含指定文本的任何其他节点。(第二个use方法不会返回div元素,但会在div元素中搜索包含文本的任何类型的标记)

http://codepen.io/gpetrioli/pen/XmmOmb上的演示

(插件可以简化为在检查节点类型的同时进行文本匹配。我分两次完成,以便更清楚地了解所需的实际步骤)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32531587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档