8
votes

Obtenez la liste des attributs d'une chaîne HTML à l'aide de JavaScript

Comment puis-je obtenir la liste des attributs d'une chaîne HTML à l'aide de JavaScript? Voici mon code jusqu'à présent. XXX


7 commentaires

Vous voulez dire n'importe quelle chaîne arbitraire de HTML? Comme parsehtmlandgetattributes (""); ? 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 + "\" "); } 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.


4 Réponses :


1
votes

Si vous connaissez les attributs pour obtenir la valeur que vous pouvez faire: xxx

en JavaScript pour boucler tous les attributs: xxx

le Code ci-dessus a été pris de Cette question < / p>

jQuery peut être une autre option:

http: // plugins .jquery.com / Projet / GetatTtributes


0 commentaires

14
votes

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 + '"');
}


0 commentaires

0
votes
[].slice
.apply(document.querySelector('something').attributes)
.forEach(function(item){
    console.log(item, item.name, item.value);
});

1 commentaires

Bonjour, bienvenue à Stackoverflow! Il est toujours bon d'expliquer vos réponses de code :)



6
votes

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 );


0 commentaires