Это работает для 1-го входа, но не" />
Вопрос:

Нечувствительный к регистру селектор атрибута jQuery

javascript jquery jquery-selectors

29566 просмотра

5 ответа

259 Репутация автора

Я делаю следующее, используя атрибут содержит селектор $ ('[атрибут * = значение]')

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

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

Это работает для 1-го входа, но не для второго ввода, так как « Человек » имеет заглавную « М »

Как сделать $( "input[name*='man']")селектор без учета регистра?

Автор: gshaffer Источник Размещён: 19.10.2013 10:44

Ответы (5)


36 плюса

72167 Репутация автора

Решение

Вы всегда можете использовать .filter():

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

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

Ключевой частью здесь является то, toLowerCase()что строчные буквы nameатрибута, что позволяет вам проверить его на содержание man.

Автор: Bojangles Размещён: 19.10.2013 10:47

2 плюса

302 Репутация автора

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

* REGEX_VALUE * - значение, которое вы хотите найти

Я закончил тем, что использовал regex, чтобы проверить, удовлетворяет ли атрибут 'ID' ... regex гораздо более гибок, если вы хотите найти определенное совпадающее значение или значения, чувствительное к регистру или нечувствительное или определенный диапазон значений ...

Автор: Juvil Размещён: 28.02.2014 03:41

1 плюс

2570 Репутация автора

Я просто смог полностью игнорировать чувствительность к регистру в 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

Автор: Umesh Patil Размещён: 11.01.2016 10:59

58 плюса

1005 Репутация автора

Самый простой способ сделать это - добавить флаг нечувствительности к регистру 'i' внутри регулярной части селектора:

Так что вместо

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

Вы могли бы сделать

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

JS Fiddle: https://jsfiddle.net/uoxvwxd1/3/

Автор: araneae Размещён: 12.08.2016 05:01

0 плюса

1 Репутация автора

Это работает для меня, используя 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;
    }
Автор: S.shaikh Размещён: 01.12.2017 12:16
Вопросы из категории :
32x32