不区分大小写的jQuery属性select器
我正在做下面的使用属性包含select器$('[attribute * = value]')
<input name="man-news"> <input name="milkMan"> <script> $( "input[name*='man']").css("background-color:black"); </script>
这适用于第一个input,但不适用于第二个input,因为“ Man ”具有大写字母“ M ”
我如何使$( "input[name*='man']")
不区分大小写的select器?
你总是可以使用.filter()
:
var mans = $('input').filter(function() { return $(this).attr('name').toLowerCase().indexOf('man') > -1; }); mans.css('background-color', 'black');
这里的关键部分是toLowerCase()
,它降低了name
属性,允许你testing它是否包含man
。
最简单的方法是在select器的正则expression式部分添加一个不区分大小写的标志“i”
所以,而不是
$( "input[name*='man']")
你可以做
$( "input[name*='man' i]")
JS小提琴: https : //jsfiddle.net/uoxvwxd1/3/
var control = $('input').filter(function() { return /*REGEX_VALUE*/i.test($(this).attr('id')); });
* REGEX_VALUE * – 您想要查找的值
我结束了使用正则expression式来validation属性“ID”是否满足…正则expression式是更灵活,如果你想find一个匹配的值或值,区分大小写敏感或不敏感或一定范围的值…
我只是能够完全忽略jQuery的case sensetivity来实现我想用下面的代码,
$.expr[":"].contains = $.expr.createPseudo(function(arg) { return function( elem ) { return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; });
你可以使用这个链接来查找基于你的jQuery版本的代码, https://css-tricks.com/snippets/jquery/make-jquery-contains-case-insensitive/
也有这篇文章,它用jQuery的许多好东西: http : //www.ultechspot.com/jquery/using-jquery-search-html-text-and-show-or-hide-accordingly