Je veux mettre tous les attributs d'un élément Html dans un tableau: comme si j'avais un objet jQuery, qui ressemble à html:
<span name="test" message="test2"></span>
maintenant, une façon est d'utiliser l'analyseur xml décrit ici , mais ensuite j'ai besoin de savoir comment obtenir le code html de mon objet.
l'autre façon est de le faire avec jquery, mais comment? le nombre d'attributs et les noms sont génériques.
Merci
Btw: Je ne peux pas accéder à l'élément avec document.getelementbyid ou quelque chose de similaire.
getElementById
-var el = document.getElementById($(myObj).attr("id"));
get
méthode ... ex:var obj = $('#example').get(0);
Vous pouvez utiliser ce simple plugin comme $ ('# some_id'). GetAttributes ();
la source
Facile:
la source
Attr.nodeValue
est obsolète en faveur devalue
, dit Google Chrome. Donc ça pourrait êtrethis.name + ':' + this.value
. The Attr InterfaceParce que dans IE7 elem.attributes répertorie tous les attributs possibles, pas seulement les présents, nous devons tester la valeur de l'attribut. Ce plugin fonctionne dans tous les principaux navigateurs:
Usage:
la source
Setter et Getter!
Utilisation:
la source
jQuery.attr
.jQuery.attr
dans le setter, mais il serait probablement avantageux de l'utiliser aussi dans le getter.Utiliser
.slice
pour convertir laattributes
propriété en tableauLa
attributes
propriété des nœuds DOM est aNamedNodeMap
, qui est un objet de type Array.Un objet de type Array est un objet qui a une
length
propriété et dont les noms de propriété sont énumérés, mais qui a ses propres méthodes et n'hérite pas deArray.prototype
La
slice
méthode peut être utilisée pour convertir des objets de type Array en un nouveau Array .la source
attrs
, vous pouvez accéder au nom de l'attribut avec laname
propriété de l'élément.Cette approche fonctionne bien si vous devez obtenir tous les attributs avec le nom et la valeur dans les objets renvoyés dans un tableau.
Exemple de sortie:
Si vous ne voulez qu'un tableau de noms d'attributs pour cet élément, vous pouvez simplement mapper les résultats:
la source
La réponse de Roland Bouman est la meilleure façon simple de Vanilla. J'ai remarqué quelques tentatives de plugs jQ, mais elles ne me paraissaient pas assez "pleines", alors j'ai fait les miennes. Le seul revers jusqu'à présent a été l'incapacité d'accéder à des attrs ajoutés dynamiquement sans appeler directement
elm.attr('dynamicAttr')
. Cependant, cela retournera tous les attributs naturels d'un objet élément jQuery.Le plugin utilise un simple appel de style jQuery:
Vous pouvez également ajouter un deuxième paramètre de chaîne pour obtenir un seul attr spécifique. Ce n'est pas vraiment nécessaire pour la sélection d'un élément, car jQuery le fournit déjà
$(elm).attr('name')
, cependant, ma version d'un plugin permet plusieurs retours. Ainsi, par exemple, un appel commeSe traduira par un
[]
retour de tableau d'objets{}
. Chaque objet ressemblera à:Brancher
Conforme
jsFiddle
Afficher l'extrait de code
la source
Des moyens beaucoup plus concis de le faire:
Ancienne méthode (IE9 +):
Voie ES6 (Edge 12+):
document.querySelector()
renvoie le premier élément du document qui correspond au sélecteur spécifié.Element.attributes
renvoie un objet NamedNodeMap contenant les attributs attribués de l'élément HTML correspondant.[].map()
crée un nouveau tableau avec les résultats de l'appel d'une fonction fournie sur chaque élément du tableau appelant.Démo:
Afficher l'extrait de code
la source
est-ce que cela aide?
Cette propriété renvoie tous les attributs d'un élément dans un tableau pour vous. Voici un exemple.
Pour obtenir les attributs de nombreux éléments et les organiser, je suggère de créer un tableau de tous les éléments que vous souhaitez parcourir, puis de créer un sous-tableau pour tous les attributs de chaque élément en boucle.
Voici un exemple de script qui parcourra les éléments collectés et affichera deux attributs. Ce script suppose qu'il y aura toujours deux attributs, mais vous pouvez facilement résoudre ce problème avec un mappage supplémentaire.
la source
Chaque réponse ici manque la solution la plus simple utilisant la méthode d'élément getAttributeNames !
Il récupère les noms de tous les attributs courants de l'élément sous la forme d'un tableau normal, que vous pouvez ensuite réduire en un bel objet de clés / valeurs.
la source
Imaginez que vous avez un élément HTML comme ci-dessous:
Une façon d'en obtenir tous les attributs est de les convertir en un tableau:
Et ci-dessous se trouve la chaîne que vous obtiendrez (de l'exemple), qui comprend tous les attributs:
la source
Essayez quelque chose comme ça
puis récupérez tous les attributs
pour un tableau d'attributs, utilisez
la source
avoir
<div id="mydiv" a='1' b='2'>...</div>
peut utiliserla source
Très simple. Il vous suffit de faire une boucle sur l'élément attributes et de pousser leurs nodeValues dans un tableau:
Si vous voulez le nom de l'attribut, vous pouvez remplacer «nodeValue» par «nodeName».
la source
Conversion d'attributs en objet
* Nécessite: lodash
Cela convertira tous les attributs html en un objet imbriqué
Exemple HTML:
<div custom-nested-path1="value1" custom-nested-path2="value2"></div>
Résultat:
{custom:{nested:{path1:"value1",path2:"value2"}}}
Si parseJson est défini sur true, les valeurs json seront converties en objets
la source
En javascript:
Pour accéder aux noms et valeurs des attributs:
la source