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

时间:2013-10-19 10:44:21

标签: javascript jquery jquery-selectors

我正在使用属性包含选择器$('[attribute*=value]')

执行以下操作
<input name="man-news">
<input name="milkMan">

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

这适用于第一个输入而不是第二个输入,因为“”的大写字母为“ M

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

5 个答案:

答案 0 :(得分:53)

最简单的方法是添加不区分大小写的标记&#39; i&#39;在选择器的正则表达式部分内:

所以而不是

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

你可以做到

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

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

答案 1 :(得分:37)

您始终可以使用.filter()

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

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

此处的关键部分是toLowerCase(),它会降低name属性,允许您对其进行测试以包含man

答案 2 :(得分:2)

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

* REGEX_VALUE * - 您要查找的值

我最终使用正则表达式来验证属性“ID”是否满足...如果要查找某个匹配值或值,区分大小写或不敏感或某个值范围,则regex更灵活...

答案 3 :(得分:1)

我只能完全忽略jQuery的案例感觉,以便在代码下面实现我想要的东西,

            $.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

答案 4 :(得分: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;
    }