Ein Element finden, das ein bestimmtes Datenattribut enthält

8

Ich habe eine Liste wie diese

%Vor%

Ich möchte alle Elemente finden, die ein bestimmtes data-pk-type enthalten. Ich versuche den folgenden fehlgeschlagenen Code, weil .data("pkType", "foo") das Datenattribut tatsächlich auf foo ;

setzt %Vor%

Ich könnte etwas wie

machen %Vor%

aber das würde nicht so gut funktionieren ... Ich möchte jedes Element, das foo enthalten könnte. Vorschläge?

    
punkish 10.01.2012, 17:55
quelle

5 Antworten

11

Beschreibung

Sie sollten jQuerys Attribute Contains Selector [name*="value"] verwenden.

  

Attribut enthält Selektor [Name *="Wert"] : Wählt Elemente aus, die das angegebene Attribut mit einem Wert enthalten, der den angegebenen Teilstring enthält

Sehen Sie sich das Beispiel und die jSFiddle Demonstration

an

Beispiel

%Vor%

gibt Ihnen eine 3, also wurden 3 Elemente gefunden.

Weitere Informationen

dknaack 10.01.2012, 18:02
quelle
5

Versuchen Sie anhand dieser Dokumentation Ссылка

Es wird wie

sein %Vor%     
Dipu Raj 10.01.2012 18:01
quelle
2

Ich habe zuvor eine sehr ähnliche Frage beantwortet: jQuery 1.4.4: Wie finde ich ein Element basierend auf seinem Datenattributwert? . (Ich nehme an, du hast es vielleicht schon gesehen, seit ich heute nachmittag einen Kommentar dazu bekommen habe.)

Grundsätzlich denke ich, dass Sie hier das falsche Werkzeug verwenden. data- Attribute sollten zum Speichern von Daten verwendet werden, die nicht logisch in die normalen Attribute passen. In diesem Fall werden Ihre data-id und data-pk-type logisch dem normalen Attribut id und dem normalen Attribut class zugeordnet. Dies ist insbesondere der Fall, weil Sie einen Satz von durch Leerzeichen getrennten "Typen" finden möchten - genau die gleiche Implementierung wie Klassen.

Mit normalen Attributen werden Ihre Elemente viel einfacher und schneller zu finden.

%Vor%

Beachten Sie, dass ich die Klassen mit pk- "namespaced" habe. Dies ist möglicherweise nicht notwendig, je nachdem wie vielfältig und zahlreich sie sind.

Sie können dann die Elemente mit einem normalen Selektor finden:

%Vor%     
lonesomeday 10.01.2012 18:03
quelle
1

Kurz gesagt:

%Vor%     
Luc Laverdure 10.01.2012 17:59
quelle
1

verwende $("#a").find("li[data-pk-type='foo']");

Weitere Informationen zu Jquery-Selektoren finden Sie hier

    
Dau 10.01.2012 18:02
quelle

Tags und Links