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

Résolu
rhan_659 Messages postés 85 Date d'inscription lundi 1 novembre 2004 Statut Membre Dernière intervention 30 juin 2011 - 31 juil. 2008 à 14:39
rhan_659 Messages postés 85 Date d'inscription lundi 1 novembre 2004 Statut Membre Dernière intervention 30 juin 2011 - 1 août 2008 à 08:20
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

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
31 juil. 2008 à 14:52
var listBalises = document.getElementsByTagName('script');
for(var i=0; i<listBalises.length; i++){
     alert(listBalises[i].getAttribute('type');
}
3
sfresnel Messages postés 7 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 août 2008
31 juil. 2008 à 17:25
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!
3
sfresnel Messages postés 7 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 août 2008
31 juil. 2008 à 15:35
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!
1
sfresnel Messages postés 7 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 août 2008
31 juil. 2008 à 15:36
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rhan_659 Messages postés 85 Date d'inscription lundi 1 novembre 2004 Statut Membre Dernière intervention 30 juin 2011
31 juil. 2008 à 15:58
merci

ça fonctionne

petite question subsidiaire
tagName est un attribut ?
0
rhan_659 Messages postés 85 Date d'inscription lundi 1 novembre 2004 Statut Membre Dernière intervention 30 juin 2011
1 août 2008 à 08:20
merci

je vais regarder ça
0
Rejoignez-nous