我需要根据jQuery中的文本选择一个元素。
例如:
<span>this text</span>
我知道我可以使用.contains()根据文本进行选择,但它并不是唯一的。
我不想选择:
<span>this text and that text</span>
如果元素是元素的唯一文本,我想选择元素。
除了使用正则表达式之外,我如何使用jQuery选择器执行此操作?
感谢。
答案 0 :(得分:34)
你对:contains选择器有一些影响力,但这只是到目前为止。您需要根据精确的文本匹配进一步修剪元素集,如:
$("span:contains(this text)")
.filter
(
function()
{
return $(this).text() === "this text";
}
)
这使得初始包含用法在技术上是不必要的,但是在过滤到您感兴趣的确切集合之前,您可以通过开始使用较小的SPAN元素集合来体验性能优势。
编辑:采用Ken Browning的建议,在text()
函数中使用innerHTML
函数代替filter
进行字符串比较。我的想法是innerHTML
将捕获我们并不特别感兴趣的文本(包括标记)。