jquery - 通过内容的精确匹配来选择元素

标签 jquery jquery-selectors

好吧,我想知道是否有办法让 :contains() jQuery 的选择器选择输入的字符串的元素

例如-

<p>hello</p>
<p>hello world</p>

$('p:contains("hello")').css('font-weight', 'bold');

选择器将选择两个 p 元素并将它们设为粗体,但我希望它只选择第一个。

最佳答案

不,没有 jQuery(或 CSS)选择器可以做到这一点。

您可以随时使用 filter :

$("p").filter(function() {
    return $(this).text() === "hello";
}).css("font-weight", "bold");

它不是选择器,但它完成了工作。 :-)

如果你想处理“hello”之前或之后的空格,你可能会抛出一个 $.trim 。在那里:

return $.trim($(this).text()) === "hello";

对于那些过早的优化器,如果你不关心它不匹配 <p><span>hello</span></p>和类似的,你可以避免调用 $text通过使用 innerHTML直接:

return this.innerHTML === "hello";

...但是您必须有很多段落才能让它变得重要,太多以至于您可能首先遇到其他问题。 :-)

关于jquery - 通过内容的精确匹配来选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364298/

相关文章:

javascript - 将简单数组转换为二维数组(矩阵)

javascript - 该 block 在首次加载时显示在上 block 的顶部,并在页面刷新时固定

javascript - javascript 中的条件基于当前显示的页面

JQuery 多个选择器, "AND"运算符

jquery - 如何使 AJAX 请求看起来像常规的正常请求

jquery - 如何使用 Flash 播放器移动 DOM 中的 DIV,同时不导致 Flash 播放器刷新

javascript - 保存和恢复 contentEditable div 的插入符号位置

javascript - 为什么 'value' 的 Jquery 选择器在动态变化的情况下不起作用

jQuery - 将值从一个输入传递到另一个输入

javascript - 对使用 JQuery 选择的多个项目进行操作