Ich habe ein ul
mit mehreren Items. Ich befülle die Liste dynamisch nach dem Laden der Seite mit jquery. Wenn ich jedes Listenelement hinzufüge, füge ich auch eine "itemID" zu den Daten dieses Elements hinzu, indem ich die Funktion jquery ".data ()" verwende. Etwas wie das:
Später brauche ich einen Selektor, um festzustellen, ob in meiner Artikelliste ein Artikel mit einer bestimmten Artikel-ID vorhanden ist. Zuerst habe ich versucht:
%Vor%Das hat nicht funktioniert - und bei weiteren Recherchen habe ich festgestellt, dass diese Syntax nur funktioniert, wenn das Datenattribut beim Laden der Seite im DOM gesetzt wurde; Es funktioniert nicht, wenn Sie die ".data" jquery-Methode dynamisch verwenden.
Als nächstes habe ich versucht:
%Vor% Aus irgendeinem Grund funktioniert das nicht. Wenn ich jedoch einfach $(':data(itemID)')
ausfühle, bekomme ich do alle li-Elemente, die in ihren Daten eine itemID enthalten.
Ich weiß, dass das itemID-Attribut richtig gesetzt ist, wenn ich .data()
auf dem Listenelement anrufe:
Wie kann ich alle Elemente auswählen, die eine itemID von "123ABC456" in ihren Daten enthalten?
Ссылка & lt; - jsFiddle Beispiel zeigt Unterschiede mit Daten-Attribut & amp; jquery.data ()
jQuery.data()
unterscheidet sich von den HTML5-Daten-NAME-Attributen, nach denen Sie suchen.
jQuery.data () speichert innerhalb des jquery-Elements (diese Daten sind nicht sichtbar).
Suche nach [data-itemID]
würde funktionieren, wenn innerhalb der tatsächlichen hatte: <li data-itemID="12345"></li>
.
Um den tatsächlichen versteckten .data()
abzurufen und zu suchen, versuchen Sie:
Hoffe das hilft!
Tags und Links javascript jquery