9
votes

Comment obtenir une matrice de valeur d'attribut des éléments d'un objet JQuery

J'utilise un attribut personnalisé dans des éléments avec ma propre classe. J'essaie de retourner la valeur de l'attribut personnalisé pour tous les éléments de la classe.

J'ai utilisé JQuery pour trouver les éléments par classe et JQuery place l'objet dans un tableau. xxx

maintenant que j'aurais les objets dans un tableau, je Voudrais renvoyer la valeur de l'attribut personnalisé pour tous les membres de la matrice.

Comment cela peut-il être fait?


1 commentaires

Votre meilleur ami: Jquery-Docs


3 Réponses :


18
votes
$('li.tab_item').data("foo"); // -> "some custom data"

6 commentaires

Merci ... les deux sur le sommet ont travaillé $ ('li.tab_item'). Données ("FOO"); // ne renvoie qu'une entrée


@garym bien sûr, il fait. Vous êtes censé utiliser cela dans une boucle, comme mappe () ou chacun () .


Ahh ... Je pensais que cela fonctionnait comme $ ('li.tab_item') .. Renvoyer un tableau. Dans la DOC JQuery, il mentionne ce fait pour ".attr ()". Merci encore ...


@garym tout dans jQuery qui retourne une valeur brise la chaîne. C'est vrai pour obtenir .text () , .html () , .attr ("xyz ') et similaire. Toutefois, si une méthode ne renvoie pas une valeur immédiate, similaire à la réglage .attr ('xyz', "nouvelle valeur") , il renvoie les éléments précédemment appariés, c'est-à-dire un tableau précédent.


Il suffit d'ajouter, tab_attribs.toarray ()


@Hatim a raison, sans toarray () Vous obtiendrez une collection JQuery au lieu d'un tableau!



7
votes

Utiliser .map () : xxx

qui vous donne un éventail de valeurs enveloppées dans un objet JQuery. Si vous voulez obtenir le tableau, appelez .get () , c'est-à-dire .map (...). Obtenez ()

par le manière, vous pouvez également sélectionner les éléments par attribut au lieu de la classe: xxx

Ceci retournera tous les éléments de la page qui ont un attribut myAttribute .


0 commentaires

4
votes

solution simple (ES6) xxx

Démo en ligne (Jsfiddle)


0 commentaires