不区分大小写的jQuery属性选择器

gsh*_*fer 46 javascript jquery jquery-selectors

我正在使用属性包含选择器$('[attribute*= value]')执行以下操作

<input name="man-news">
<input name="milkMan">

<script>    
    $( "input[name*='man']").css("background-color:black");
</script>
Run Code Online (Sandbox Code Playgroud)

这适用于第一个输入而不是第二个输入,因为" Man "具有大写" M "

如何制作$( "input[name*='man']")不区分大小写的选择器?

ara*_*eae 58

最简单的方法是在选择器的正则表达式部分中添加一个不区分大小写的标志"i":

而不是

$( "input[name*='man']")

你可以做到

$( "input[name*='man' i]")

JS小提琴:https://jsfiddle.net/uoxvwxd1/3/

  • 仅供参考:适用于Chrome 53,但不适用于IE 11,非常有趣,但并不理想 (11认同)
  • 这个解决方案看起来很简单,但在我的情况下给出了: jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: [name*='fund' i] (2认同)

Boj*_*les 36

你可以随时使用.filter():

var mans = $('input').filter(function() {
    return $(this).attr('name').toLowerCase().indexOf('man') > -1;
});

mans.css('background-color', 'black');
Run Code Online (Sandbox Code Playgroud)

这里的关键部分是toLowerCase()name属性进行小写,允许您测试它是否包含man.