jQuery 基于文本选择

标签 jquery

我需要根据 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/

相关文章:

javascript - JQuery - 显示/隐藏样式属性覆盖 css

javascript - JQuery Cascade 函数在更改事件后不会立即触发

javascript - 将 5 个字符串数组合并为一个

javascript - 无法在 AngularJS View 上呈现 Jsonresult

javascript - PHP 和 JS - 如何从选中并输入的所选复选框中获取值?

javascript - 使用 Foundation Datepicker 提交日期

jQuery - 多个相同 IF 条件的简写并同时匹配多个元素?

jquery - Ajax:在顶部附加列表项

javascript - jQuery - 即使不满足条件也运行代码

Javascript 添加输入