好吧,我想知道是否有一种方法可以让:contains()jQuery 的选择器选择 仅 包含输入的字符串的元素
:contains()
例如 -
<p>hello</p> <p>hello world</p> $('p:contains("hello")').css('font-weight', 'bold');
选择器将选择两个p元素并使它们加粗,但我希望它只选择第一个。
p
不,没有 jQuery(或 CSS)选择器可以做到这一点。
您可以轻松使用filter:
filter
$("p").filter(function() { return $(this).text() === "hello"; }).css("font-weight", "bold");
它不是一个 选择器 ,但它可以完成工作。:-)
如果你想在“hello”之前或之后处理空格,你可以$.trim在里面扔一个:
$.trim
return $.trim($(this).text()) === "hello";
对于那些过早的优化器,如果你不在乎它不匹配<p><span>hello</span></p>和类似,你可以避免调用$和直接text使用innerHTML:
<p><span>hello</span></p>
$
text
innerHTML
return this.innerHTML === "hello";
…但是您必须有 很多 段落才重要,以至于您可能首先会遇到其他问题。:-)