如果元素的内部文本与 jquery 中的模式匹配,如何获取元素?

NEO*_*NEO 5 regex jquery parsing

考虑一个像下面这样的html,

<div id="test">
{{ sometext }}
</div>
<span class="testing">
{{ asdknfsdf }}
</span>
Run Code Online (Sandbox Code Playgroud)

我想获取其内部文本{{ <sometext> }}在 jquery 中匹配的所有元素。我尝试了以下代码,但无法正确获取元素。我在这里缺少什么?

var elements = [];
$('*:contains("{{ .* }}")').each(function(){
   elements.push(this); 
});
Run Code Online (Sandbox Code Playgroud)

Pal*_*tim 4

几件事:

1)“无法正确获取元素”并没有很好的描述性。你没有得到结果吗?意想不到的结果?

2) 通过使用 选择器*:contains,您将询问包含指定文本的每个元素。这意味着您将htmlbody、 和其他父元素以及最近的div. 将选择器的范围仅限于div元素,甚至更好的是您知道可能包含预期结果的类。

makeArray()3)您可以通过简单地调用选择器的结果来简化您的逻辑:

var elements = $.makeArray($('body *:contains("{{ sometext }}")'));
console.log('elements ::', elements);
Run Code Online (Sandbox Code Playgroud)