让我假装我有这些跨度:
<span>c2alerts</span>
<span>C2alerts</span>
<span>c2Alerts</span>
<span>c2aLerts</span>
<span>c2alErts</span>
<span>c2aleRts</span>
<span>c2alerTs</span>
<span>c2alertS</span>
我想找到每个'c2alerts' 我很熟悉搜索特定的字符串:
$("span:contains('c2alerts')").addClass('yellow');
但是如何在不重复编码的情况下搜索所有这些内容? 我知道我可以使用toLowerCase()函数,但我不确定在哪里应用它...
我想保持跨度的原始格式,因此将它们转换为小写,然后搜索将不是一个可行的选项。
有什么建议吗?
答案 0 :(得分:2)
您必须使用.filter()
:
$('span').filter(function() {
return $(this).text().toLowerCase().indexOf('c2alerts') !== -1;
}).addClass('yellow');
答案 1 :(得分:1)
您可以推出自己的contains
自定义行为
jQuery.expr[":"].contains_ignoreCase = jQuery.expr.createPseudo(function(arg) {
return function( elem ) {
return jQuery(elem).text().toLowerCase().indexOf(arg.toLowerCase()) >= 0;
};
});
$("span:contains_ignoreCase('c2alerts')").addClass('yellow');
答案 2 :(得分:0)
我认为最简单的方法是:
$("span").each(function(){
if($(this).text().toLowerCase() == "c2alerts") {
$(this).addClass("yellow");
}
});