使用 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
}
});
});
我对 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
}
});
});