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.