Sélectionnez les éléments avec lesquels j'ai précédemment défini jquery.data();
ie Sélectionnez tous les éléments .data('myAttr')
déjà définis.
SOLUTION
Un jsfiddle à démostrer est Fiddle
javascript
jquery
jquery-selectors
Argiropoulos Stavros
la source
la source
$('[data-myAttr]')
La meilleure et simple façon de les sélectionner est:
Plus d'information:
J'ai testé beaucoup de choses.
L'utilisation
$('[data-myAttr!=""]')
ne fonctionne pas dans tous les cas. Parce que les éléments qui n'ont pas d'data-myAttr
ensemble auront leurdata-myAttr
égal àundefined
et$('[data-myAttr!=""]')
les sélectionneront également, ce qui est incorrect.la source
Vous pouvez utiliser filter () :
la source
$('[data-myAttr]')
?data()
la forme getter de la lecture lit effectivement lesdata-
attributs HTML5 , mais sa forme setter ne les crée ni ne les met à jour.Vous pouvez utiliser cette extension jQuery Selector: Interroger des données d'élément
la source
Vous pouvez utiliser l'interface utilisateur JQuery avec le sélecteur: data ()
Vérifiez ce jsfiddle pour un exemple
Pour obtenir tous les éléments correspondants,
.data('myAttr')
vous pouvez utiliserCela devrait fonctionner à la fois pour les éléments avec des
data-
attributs et pour les éléments avec des données stockées en utilisant$.data()
carMais cela ne fonctionne pas très bien. Vérifiez ce jsfiddle et vous verrez que la deuxième fois que le sélecteur est appelé, il doit correspondre à 2 éléments et ne correspond qu'à un seul. Cela est dû à "un bogue" dans la bibliothèque jquery-ui.
Ceci est tiré du fichier jquery-ui principal.
Comme vous pouvez le voir, ils utilisent à la
$.data(elem, match)
place,$(elem).data(match)
ce qui empêche la mise à jour du cache au cas où vous demanderiez des éléments avec desdata-
attributs. Si l'élément a été testé pourdata()
stockage, cela fonctionne bien mais sinon, il ne sera pas inclus dans les correspondances résultantes.Ce n'est peut-être pas du tout un bogue si vous voulez faire correspondre uniquement des éléments avec des informations de données définies par vous, mais sinon, vous avez deux options.
N'utilisez pas jquery-ui et étendez votre propre pseudo-sélecteur
$(:mydata(myAttr))
Afficher l'extrait de code
Utilisez jquery-ui avec le
:data
pseudosélecteur et joignez les résultats de la sélection[data-myAttr]
pour inclure ceux qui pourraient être ignorésAfficher l'extrait de code
la source
la source
Essayez d'utiliser
jQuery.data()
jsfiddle http://jsfiddle.net/xynZA/142/
la source
html
data-*
attribut est défini, ainsi quejQuery.data()
défini?