小编典典

通过内容的完全匹配来选择元素

all

好吧,我想知道是否有一种方法可以让:contains()jQuery 的选择器选择 包含输入的字符串的元素

例如 -

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

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

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


阅读 51

收藏
2022-08-15

共1个答案

小编典典

不,没有 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";

…但是您必须有 很多 段落才重要,以至于您可能首先会遇到其他问题。:-)

2022-08-15