Wählen Sie Elemente aus, mit denen ich zuvor festgelegt habe jquery.data();
dh Wählen Sie alle Elemente aus, die .data('myAttr')
bereits festgelegt wurden.
LÖSUNG
Eine jsfiddle zum Demostrieren ist Fiddle
javascript
jquery
jquery-selectors
Argiropoulos Stavros
quelle
quelle
$('[data-myAttr]')
Der beste und einfachste Weg, sie auszuwählen, ist:
Mehr Informationen:
Ich habe viele Dinge getestet.
Die Verwendung
$('[data-myAttr!=""]')
funktioniert nicht in allen Fällen. Weil Elemente, die keinedata-myAttr
Menge haben,data-myAttr
gleichundefined
und sind$('[data-myAttr!=""]')
auch diese auswählen, was falsch ist.quelle
Sie können filter () verwenden :
quelle
$('[data-myAttr]')
?data()
Getter-Formular zwar die HTML5-data-
Attribute liest, das Setter-Formular sie jedoch weder erstellt noch aktualisiert.Sie können diese jQuery Selector-Erweiterung verwenden: Abfragen von Elementdaten
quelle
Sie können die JQuery-Benutzeroberfläche mit dem Selektor: data () verwenden
Überprüfen Sie diese jsfiddle für ein Beispiel
Um alle passenden Elemente zu erhalten
.data('myAttr')
, können Sie verwendenDies sollte sowohl für Elemente mit
data-
Attributen als auch für Elemente mit Daten funktionieren, die mit$.data()
weil gespeichert wurdenDas funktioniert aber nicht sehr gut. Überprüfen Sie diese jsfiddle und Sie werden sehen, dass der Selektor beim zweiten Aufruf mit 2 Elementen übereinstimmen sollte und nur mit einem übereinstimmt. Dies liegt an einem "Fehler" in der jquery-ui-Bibliothek.
Dies wird aus der Kerndatei jquery-ui übernommen.
Wie Sie sehen, werden sie
$.data(elem, match)
stattdessen verwendet$(elem).data(match)
, wodurch der Cache nicht aktualisiert wird, wenn Sie Elemente mitdata-
Attributen anfordern . Wenn das Element getestet wurdedata()
Speicherung funktioniert dies gut, aber wenn nicht, wird es nicht in die resultierenden Übereinstimmungen aufgenommen.Dies ist möglicherweise überhaupt kein Fehler, wenn Sie nur Elemente mit den von Ihnen festgelegten Dateninformationen abgleichen möchten. Andernfalls stehen Ihnen zwei Optionen zur Verfügung.
Verwenden Sie nicht jquery-ui und erweitern Sie Ihren eigenen Pseudo-Selektor
$(:mydata(myAttr))
Code-Snippet anzeigen
Verwenden Sie jquery-ui mit dem
:data
Pseudoselector und fügen Sie die Ergebnisse der Auswahl hinzu[data-myAttr]
, um diejenigen einzuschließen , die möglicherweise übersprungen werdenCode-Snippet anzeigen
quelle
quelle
Versuchen Sie es mit
jQuery.data()
jsfiddle http://jsfiddle.net/xynZA/142/
quelle
html
data-*
Attribut als auch einjQuery.data()
Satz festgelegt wurde?