jQuery基于文本选择

时间:2009-09-16 00:21:50

标签: jquery

我需要根据jQuery中的文本选择一个元素。

例如:

<span>this text</span>

我知道我可以使用.contains()根据文本进行选择,但它并不是唯一的。

我不想选择:

<span>this text and that text</span>

如果元素是元素的唯一文本,我想选择元素。

除了使用正则表达式之外,我如何使用jQuery选择器执行此操作?

感谢。

1 个答案:

答案 0 :(得分:34)

你对:contains选择器有一些影响力,但这只是到目前为止。您需要根据精确的文本匹配进一步修剪元素集,如:

$("span:contains(this text)")
.filter
(
  function()
  {
    return $(this).text() === "this text";
  }
)

这使得初始包含用法在技术上是不必要的,但是在过滤到您感兴趣的确切集合之前,您可以通过开始使用较小的SPAN元素集合来体验性能优势。

编辑:采用Ken Browning的建议,在text()函数中使用innerHTML函数代替filter进行字符串比较。我的想法是innerHTML将捕获我们并不特别感兴趣的文本(包括标记)。