Récupérer en JS les attribut d'une balise HTML [Résolu]

Signaler
Messages postés
85
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
85
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
30 juin 2011
-
bonjour

j'aimerais savoir comment faire pour récupérer en JS les attribut d'une balise HTML

exemple : de balise

<script language="javascript" type="text/javascript" src="/rep/rep/rep/MooTools.js"></script>

j'aimerais pouvoir récupérer les valeur de language, type et src !

mais je n'y arrive pas !

6 réponses

Messages postés
631
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
var listBalises = document.getElementsByTagName('script');
for(var i=0; i<listBalises.length; i++){
     alert(listBalises[i].getAttribute('type');
}
Messages postés
7
Date d'inscription
mercredi 6 octobre 2004
Statut
Membre
Dernière intervention
1 août 2008

Deux solutions:

En utilisant la structure for ... in

for ( var name in element )
  alert ( name + ": " + element[name] );

Ou bien en passant par la colelction element.attributes:
for ( var i in element.attributes.length )
  alert ( element.attributes[i].name  + ": " + element.attributes[i].value );

La variable element contient la balise dont tu veux récupérer les attributs.
- Ajax, ca pique les yeux, mais c'est pas grave!
Messages postés
7
Date d'inscription
mercredi 6 octobre 2004
Statut
Membre
Dernière intervention
1 août 2008

Oui c'est un attribut. Mais il faut se méfier de la notion d'attribut, notamment chez Microsoft. Car il y a les attributs standards (ceux définis par la norme W3C) et les attributs spécifiques à l'implémentation. Par exemple, certaines données sont accessibles en faisant element['attrName'] mais pas en faisant element.getAttributeName ( 'attrName' );

Plutôt que d'utiliser tagName, je te conseille d'utiliser nodeName. tagName est une spécificité d'HTML alors de nodeName est un standard XML
- Ajax, ca pique les yeux, mais c'est pas grave!
Messages postés
7
Date d'inscription
mercredi 6 octobre 2004
Statut
Membre
Dernière intervention
1 août 2008

Petite correction, dans le deuxième exemple, il fallait lire
for (var i = 0; i < element.attributes.length; i++ )
  alert ( element.attributes[i].name + ": " + element.attributes[i].value );
- Ajax, ca pique les yeux, mais c'est pas grave!
Messages postés
85
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
30 juin 2011

merci

ça fonctionne

petite question subsidiaire
tagName est un attribut ?
Messages postés
85
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
30 juin 2011

merci

je vais regarder ça