我正在尝试突出显示包含某个字符串的所有字段,在下面的示例中,我还将匹配someuser2,someuser3等。
$("div.forumbody .username:contains('someuser')").css("background", "#6a5acd");
如何搜索确切的字符串并创建字段#6a5acd的背景? 提前谢谢。
答案 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");