我需要根据 jQuery 中的文本选择一个元素。
例如:
<span>this text</span>
我知道我可以使用 .contains() 根据文本进行选择,但这不是排他性的。
我不想选择:
<span>this text and that text</span>
如果该元素是该元素的唯一文本,我想选择该元素。
除了使用正则表达式之外,我如何使用 jQuery 选择器来做到这一点?
谢谢。
最佳答案
您对 :contains 选择器有一定的影响力,但也仅限于此。您需要根据精确的文本匹配进一步缩减元素集,如下所示:
$("span:contains(this text)")
.filter
(
function()
{
return $(this).text() === "this text";
}
)
这使得最初的 contains 使用在技术上是不必要的,但是通过从较小的 SPAN 元素集合开始,然后再过滤到您感兴趣的确切集合,您可能会体验到性能优势。
编辑:采纳 Ken Browning 的建议,使用 text()
函数而不是 innerHTML
在过滤器<中进行字符串比较
函数。这个想法是 innerHTML
将捕获我们不是特别感兴趣的文本(包括标记)。
关于jQuery 基于文本选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430290/