好吧,我不知道是否有一种方法可以使:contains()
jQuery的选择器选择只用了在输入的字符串元素
例如 -
<p>hello</p>
<p>hello world</p>
$('p:contains("hello")').css('font-weight', 'bold');
选择器将选择两个p
元素,让他们大胆,但我想它只选择第一个。
好吧,我不知道是否有一种方法可以使: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");
这不是一个选择 ,但它的工作。 :-)
如果你想之前或之后办理的空白“你好”,你可能会抛出一个$.trim
在那里:
return $.trim($(this).text()) === "hello";
对于过早的优化在那里,如果你不关心它不匹配<p><span>hello</span></p>
和类似的,你可避免调用$
和text
使用innerHTML
直接:
return this.innerHTML === "hello";
...但你得有很多段落为它无所谓,这么多,你可能有其他的问题,第一个。 :-)
尝试添加一个扩展伪功能:
$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().match("^" + arg + "$");
};
});
然后,你可以这样做:
$('p:textEquals("Hello World")');
您可以使用jQuery的过滤器()函数来实现这一目标。
$("p").filter(function() {
// Matches exact string
return $(this).text() === "Hello World";
}).css("font-weight", "bold");
所以Amandu的回答大多是工作。 在野外使用它,但是,我遇到了一些问题,在这里并没有获得发现,我本来期望得到的物品。 这是因为有时有周边元素文本随机空白。 我相信,如果你正在寻找的“Hello World”,你仍然希望它匹配的“Hello World”,甚至是“世界您好\ n”。 因此,我只是说了“修剪()”方法的功能,从而消除周围的空白,并开始更好地工作。
特别...
$.expr[':'].textEquals = function(el, i, m) {
var searchText = m[3];
var match = $(el).text().trim().match("^" + searchText + "$")
return match && match.length > 0;
}
此外,请注意,这个答案是非常相似的,选择由文本链接(精确匹配)
而二次注... trim
之前只和搜索文本后删除空格。 它不会在的话中间删除空白。 我相信这是可取的行为,但你可以改变,如果你想。
我发现我工作的方式。 这是不是100%准确,但它消除了包含不止我找的,因为我检查不包含个人空间字符串太字更多的所有字符串。 顺便说一句,你不需要这些“”。 jQuery的知道你正在寻找一个字符串。 请确保你只有在一个空间:包含()部分,否则将无法正常工作。
<p>hello</p>
<p>hello world</p>
$('p:contains(hello):not(:contains( ))').css('font-weight', 'bold');
是的,我知道你是否有这样的东西,它不会工作<p>helloworld</p>
像TJ克罗德如上所述,过滤功能没有奇迹。 这不是在我的具体情况为我工作。 我需要搜索多个表和它们各自的TD标记一个div内(在这种情况下,一个jQuery对话框)。
$("#MyJqueryDialog table tr td").filter(function () {
// The following implies that there is some text inside the td tag.
if ($.trim($(this).text()) == "Hello World!") {
// Perform specific task.
}
});
我希望这是有帮助的人!
的。首先()将在这里帮助
$('p:contains("hello")').first().css('font-weight', 'bold');