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

时间:2017-07-29 01:29:53

标签: javascript jquery string textnode

我的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>

1 个答案:

答案 0 :(得分:0)

您必须访问每个节点的textContent,并且您可以直接在过滤器中执行,并返回匹配项,或者如果您想直接使用它们,请使用常规each循环< / p>

$(".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