2012-04-18 61 views
2

我想强调的是含有一定字符串完全所有领域,在下面的例子中我也将匹配someuser2,someuser3等突出确切字符串使用jQuery使用含有选择

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

如何搜索为确切的字符串,并使字段背景#6a5acd? 在此先感谢。

回答

3

尝试this

创建自定义选择

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

,并用它

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

这看起来我的权利......确保你选择的工作的权利,而不包含.. 。

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

编辑

对于文本字段:

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

或者,如果他们不预填充(建设关戈文德的答案):

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

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

DOUBLE编辑

该测试工作和简单:

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

感谢您的解决方案,无论是工作得很好。 – JustaN00b 2012-04-18 14:51:16

0

尝试添加一个扩展伪功能:

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

然后,你可以这样做:

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