Auswählen von Elementen mit jQuery, die einen bestimmten Wert in einem Datenattribut-Array haben

7

Gibt es in jQuery eine Möglichkeit, Elemente auszuwählen, die in einem Datenattribut-Array einen bestimmten Wert haben?

Betrachten Sie diesen Codeausschnitt von html:

%Vor%

Wie wählt man in jQuery am besten alle Personen mit "New York" im Attribut "data-city" aus?

Die Lösung sollte berücksichtigen, dass bestimmte Stadtnamen in anderen Städtenamen vorkommen (in Beispiel 2: London, New London)

Beispiel 2:

%Vor%

Wie wählt man in jQuery am besten alle Personen mit "London" im Attribut "data-city" aus? Eine Stadt mit "New London" sollte nicht ausgewählt werden.

    
murze 08.09.2011, 07:06
quelle

2 Antworten

32

Sie können den Selektor tag[attr*=string] verwenden, wobei *= mit der Zeichenfolge übereinstimmt, die irgendwo im Tag-Wert gefunden wird. Ich habe den Text rot eingefärbt, nur damit Sie testen können ...

%Vor%

Oder über eine komplexere Methode, um die Anforderungen von Beispiel zwei zu erfüllen:

%Vor%

Diese Methode verwendet einen Filter, um durch die Liste der ausgewählten li zu gehen und alle Elemente mit dem Attribut data-city zu vergleichen, das mit regex (^|,\s+)London(,|$) übereinstimmt, was bedeutet ...

  • start oder Komma ( ^|, )
  • und ein oder mehrere Leerzeichen ( \s+ )
  • gefolgt von London
  • gefolgt von Komma oder Ende ( ,|$ )

Ich habe diesen HTML-Code verwendet:

%Vor%     
Billy Moon 08.09.2011, 07:14
quelle
2

versuche etwas wie:

%Vor%

Attribute Contains Selector [docs]

jsfiddle Beispiel

    
Haim Evgi 08.09.2011 07:13
quelle