getElementsByName
getElementsByName parcourt le document xhtml à la recherche de tous les
node possédant l'attribut name
(*) avec une valeur
spécifique. Si aucun node existe il renvoie false.
Cette méthode est spéifique au (X)HTML du fait de la définition et
l'attribut name . De la même marnière que getElementById
cette méthode n'est accessible que par document. Exemple :
nodeList = document.getElementsByName(which);
Une traduction écrite de l'exemple ci-dessus serait :
Parcourir l'entiereté du document et assigner à nodeList tous les noeuds dont l'attribut name
égal which.
Comme on obtient un collection de noeud et non un noeud unique, comme pour
getElementById, pour parcourir cette collection
on utilisera la propriété item ou avec des []
tel que item(0) ou [0] représente la première balise rencontrée.
Pour obtenir le nombre de basiles contenu dans cette collection on utilise la é
length. Exemple :
nodeList = node.getElementsByName("choix");
nodeList.length; // nombre d'élément dans le document dont l'attribut name=choix
nodeList.item(2); // accession au 3ème élément rencontré
nodeList[2]; // accession au 3ème élément rencontré
Exemple
Veuillez trouver ci-dessous le script de example1() la fonction javascript
utilisée :
function example10(which){
var node = document.getElementsByName(which);
var msg = ['Utilisation de getElementsByName avec '+which+'\n========================\n'];
for (var i=0,el;el=node[i];i++) {
msg[msg.length] = "el.nodeName -> "+ el.nodeName + "el.value -> "+ el.value + "el.id -> "+ el.id +" el.checked -> "+ el.checked +"\n";
}
alert( msg.join(' ') );
}
getElementsByName de part sa nature est un compromis pour les personnes qui
codent en HTML et pour une meilleur intégration des formulaires en DOM.
Notes de bas de page
- l'attribut
name: - Cet attribut possédait des propriétés similaire à
id. Mais depuis HTML 4.0, son usage est déprécié en faveur de l'attributid. Maintenant, il ne sert uniquement que dans les formulaires car c'est sa valeur et non celle de l'id qui est transmise lors de l'envoi des formulaire.