Définition et exemple d'utilisation de la méthode : getElementByName

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

Aimes-tu le DOM ?

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'attribut id. 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.