Comment puis-je obtenir la liste des attributs d'une chaîne HTML à l'aide de JavaScript? Voici mon code jusqu'à présent.
4 Réponses :
Si vous connaissez les attributs pour obtenir la valeur que vous pouvez faire: en JavaScript pour boucler tous les attributs: p> le Code ci-dessus a été pris de Cette question < / p> jQuery peut être une autre option: p> http: // plugins .jquery.com / Projet / GetatTtributes P> P>
Utilisez le nœud.atributes code>
propriété de un élément dom. Exemple:
var foo = document.getElementById('foo'), attrs = foo.attributes, i = attrs.length, attr; while (i--) { attr = attrs[i]; console.log(attr.name + '="' + attr.value + '"'); }
[].slice .apply(document.querySelector('something').attributes) .forEach(function(item){ console.log(item, item.name, item.value); });
Bonjour, bienvenue à Stackoverflow! Il est toujours bon d'expliquer vos réponses de code :)
Semble que toutes ces réponses indiquent comment obtenir une liste d'attrap à partir d'un nœud, mais la question pose des attraits d'une chaîne HTML. Voici mes 2cents.
//turn your string into a node and get your html strings NamedNodeMap var temp = document.createElement("div"); temp.innerHTML = "<div attr-1 attr-2 attr-3 attr-4></div>"; temp = temp.firstElementChild.attributes; //put the attributes in a an array var list = Object.keys(temp).map( function( index ) { return temp[ index ] } ); console.log( list );
Vous voulez dire n'importe quelle chaîne arbitraire de HTML? Comme
parsehtmlandgetattributes ("
"); code>? Ou voulez-vous obtenir des attributs de la DOM d'une page déjà analysée? Ce dernier est plus facile.
Depuis le Dom mais je vais essayer votre première méthode, merci!
@Bruno: Ce n'est pas en fait une méthode qui existe. @Joshua utilisait juste cela comme cas d'utilisation hypothétique.
En fait, la corde appartient à un élément du DOM mais je n'ai pas directement accès à celui-ci.
@Bruno - Ouais, le nom de la fonction était celui que j'ai composé juste à des fins d'illustration. Désolé que ce n'était pas plus clair.
@Bruno - La réponse de @matt Ball ci-dessous ressemble à ce que vous voulez exactement ce que vous voulez. Il suffit de mettre
pour (var attr dans lis [membre] .attributes) {alerte (lis [membre] .Attributes [attr] nom + "= \" "+ LIS [Membre]. Attributes [ATT] .Value + "\" "); } code> sur place que vous avez indiqué dans votre commentaire et que vous devriez voir les résultats souhaités.
@Joshua carmody merci pour votre réponse mais cela ne fonctionne pas.