2

我试图准确地突出显示包含某个字符串的所有字段,在下面的示例中,我还将匹配 someuser2、someuser3 等。

$("div.forumbody .username:contains('someuser')").css("background", "#6a5acd");

如何搜索确切的字符串并制作字段#6a5acd 的背景?提前致谢。

4

3 回答 3

3

试试这个

创建自定义选择器

$.expr[':'].textEquals = function(a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};

并使用它

$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");
于 2012-04-18T14:08:04.753 回答
1

这对我来说是正确的...确保您的选择器在没有包含的情况下正常工作...

$("div.forumbody .username").css("background", "#6a5acd");

编辑

对于文本字段:

$("div.forumbody .username[value*=someuser]").css("background", "#6a5acd");

或者,如果它们没有预先填充(基于 Govind 的回答):

$.expr[':'].valHas = function(a, i, m) {
  return $(a).val().match("^" + m[3] + "$");
};

$("div.forumbody .username:valHas('someuser')")

双重编辑

这经过测试工作更简单:

jQuery("div.forumbody .username:text[value*='someuser']").css("background", "#6a5acd");
于 2012-04-18T14:27:28.583 回答
0

尝试添加一个扩展伪函数:

$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().match("^" + arg + "$");
    };
});

然后你可以这样做:

$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");
于 2013-08-27T10:13:50.520 回答