2013-10-19 43 views
32

我做以下使用属性包含选择$('[attribute*=value]')不区分大小写的jQuery属性选择

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

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

这适用于第一次输入,但不是第二个输入为“”有资金“中号

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

+1

[CSS选择器情况下可能重复对属性不敏感](http://stackoverflow.com/questions/5671238/css-selector-case-insensitive-for-attributes) – falinsky

+0

[使用Jquery的不区分大小写的属性值选择器](http:// stackoverflo wap.questions/5755722/case-insensitive-attribute-value-selector-with-jquery) –

回答

31

您可以随时使用.filter()

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

mans.css('background-color', 'black'); 

这里的关键部分是其toLowerCase()的小写属性name,使您可以测试它含有man

2
var control = $('input').filter(function() { 
    return /*REGEX_VALUE*/i.test($(this).attr('id')); 
}); 

* REGEX_VALUE * - 值要查找

我结束了使用正则表达式来验证属性“ID”是否满足...如果你想找到一个特定的正则表达式是更加灵活匹配一个或多个值,区分大小写不敏感或或一定范围的值...

1

我只是能够完全忽略jQuery的情况下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:​​

36

要做到这一点最简单的方法是添加不区分大小写标志的“i”选择的正则表达式部分内:

所以不是

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

你可以做

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

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

+6

FYI:适用于Chrome 53,但不适用于IE 11,如此有趣,但并不理想 – Stan

+0

@Stan这让我感动。我在Chrome和IE11中看到了不同的结果,并认为这不可能;还有一些其他的区别。然后我看到了你的评论。我认为jQuery的重点是浏览器独立性。我特别期待在选择器语法这样的内部结构时这是真实的。任何想法为什么这种差异存在或如果/它在哪里记录? – BlueMonkMN

+0

@BlueMonkMN它已经过了一年,我没有重新测试,但我的猜测是它是IE浏览器的正则表达式的处理是责怪的差异。 – Stan

0

这工作我使用jQuery和如果我加入项目表

// check if item already exists in table 
    var inputValue = $('#input').val(); // input 
    var checkitem = $('#exampleTable td.value div.editable').filter(function() { 

     //check each table's editable div matches the input value in lowercase 
     if ($(this).text().toLowerCase() === inputValue.toLowerCase()) { 
      itemexists = true; 
     } 
    }); 

    if (itemexists) { 
     alert("item exists in the table"); 
     return; 
    } 
相关问题