it-swarm.com.de

JQuery-Attributselektor ohne Berücksichtigung der Groß- und Kleinschreibung

Ich mache folgendes using-Attribut enthält Selektor $ ('[Attribut * = Wert]')

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

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

Dies funktioniert für die erste Eingabe, aber nicht für die zweite Eingabe, da "Man" ein Großbuchstabe "M" hat.

Wie kann ich $( "input[name*='man']") zu einer Unterscheidung zwischen Groß- und Kleinschreibung machen?

39
gshaffer

Sie können .filter() immer verwenden:

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

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

Der Schlüsselteil hier ist toLowerCase(), das das name-Attribut unterlegt, so dass Sie testen können, ob es man enthält.

35
Bojangles

Der einfachste Weg, dies zu tun, besteht darin, ein Fall-Unempfindlichkeits-Flag 'i' in den Regex-Teil des Selektors einzufügen:

Also statt

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

Du könntest es tun

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

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

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

* REGEX_VALUE * - der Wert, den Sie suchen möchten

Am Ende habe ich regex verwendet, um zu überprüfen, ob das Attribut 'ID' erfüllt ... regex ist viel flexibler, wenn Sie einen bestimmten übereinstimmenden Wert oder Werte finden möchten, die Groß- und Kleinschreibung beachten oder einen bestimmten Wertebereich verwenden möchten.

2
Juvil

Ich konnte gerade die Fallempfindlichkeit von jQuery ignorieren, um das zu erreichen, was ich mit dem folgenden Code erreichen möchte:

            $.expr[":"].contains = $.expr.createPseudo(function(arg) {
            return function( elem ) {
                return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
            };
        });

Sie können diesen Link verwenden, um nach Code zu suchen, der auf Ihren jQuery-Versionen basiert https://css-tricks.com/snippets/jquery/make-jquery-contains-case-insensitive/

Auch gibt es diesen Artikel, wo es viele gute Dinge mit Jquery tut: http://www.ultechspot.com/jquery/using-jquery-search-html-text-and-show-or-hide- entsprechend

1
Umesh Patil

Dies funktioniert für mich mit jQuery und wenn ich einer Tabelle Elemente hinzufüge 

    // 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;
    }
0
S.shaikh