使用 jQuery 在任何子文本节点中查找匹配文本?

Using jQuery to find matching text in any child text node?

我对 jQuery 有点生疏(几年了!)我不得不假设这个问题已经被问了 100 次,但我似乎没有在寻找合适的术语。

我正在尝试获取对象的所有后代文本节点,然后,如果与文本字符串匹配,则对该对象执行某些操作。这就是我现在拥有的原因:

$(".my-item").each(function(){
    var content = $(this).find('*').text();
    if (content.indexOf('mySearchString'>0)){
        //do something
    }
}) 

不过,我似乎无法找到 所有 文本。只是直系后裔。示例 HTML:

<div class="my-item">
    this text is part of the var 'content'
    <div>
        this text is not
    </div>
</div>

你必须访问每个节点的 textContent,你可以直接在过滤器中进行,return 匹配,或者如果你想使用常规的 each 循环直接与他们合作

$(".my-item").each(function(){
    var $children = $(this).children();

    $children.contents().each(function(i,node){
        if (node.nodeType === 3 && node.textContent.indexOf('mySearchString') !== -1) {
            //do something
        }
    });
});

FIDDLE