使用包含选择器的jquery突出显示精确字符串

时间:2012-04-18 14:02:43

标签: jquery string match

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

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

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

3 个答案:

答案 0 :(得分:3)

尝试this

创建自定义选择器

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

并使用它

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

答案 1 :(得分: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')")

DOUBLE EDIT

这测试工作更简单:

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

答案 2 :(得分:0)

尝试添加extend伪函数:

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

然后你可以这样做:

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