À l'aide de document.getElementsByName() ne fonctionne pas?
Le code pour la deuxième alerte de commande fonctionne comme prévu (affichage de la valeur de l'élément "a", mais la première alerte de commande ne fonctionne pas (il est censé faire la même chose). Pourquoi est-ce?
<html>
<head>
<script type="text/javascript">
function getValue()
{
alert(document.getElementsByName("to").value);
alert(document.forms[0].to.value);
}
</script>
</head>
<body>
<form>
<input name="to" type="hidden" value="hoolah" />
<input type="button" onclick="getValue()" value="Get Value!" />
<form/>
</body>
</html>
OriginalL'auteur user1146930 | 2012-01-13
Vous devez vous connecter pour publier un commentaire.
getElementsByName
retourne unHTMLCollection
. Vous pouvez accéder à la valeur du premier élément comme ceci:Ou comme ceci:
Plus d'infos:
OriginalL'auteur Wayne Burkett
getElementsByName
renvoie tous les éléments avec le nom donné. Cela signifie qu'il peut y avoir plus d'un.Si vous voulez obtenir la valeur du premier élément:
OriginalL'auteur James Montagne
C'est parce qu'il met le ou les élément(s) dans un tableau, essayez cet exemple à la place:
.getElementsByName()
retourne unHTMLCollection
, qui est semblable au tableau mais pas un tableau. Deuxièmement, vous ne devriez pas initialiser votrearr
variable d'un nouveau tableau parce que vous êtes alors immédiatement remplacer qu'avec la valeur retournée par.getElementsByName()
(il ne doit pas mettre le résultat dans ton tableau, il ignore votre tableau). Troisièmement, pourquoi faites-vous appel à.getElementsByName()
de nouveau à chaque itération de ta boucle for?Si vous voulez juste pour itérer sur elle, alors oui, le
.length
propriété et[]
notation de tableau vous permettra de le traiter comme un tableau. Mais le code dans ta réponse utilise le.item()
méthode, qui n'est pas une méthode de tableau. Et réel tableaux ont un tas d'autres méthodes, comme la.sort()
,.join()
, etc.OriginalL'auteur Jeff Wooden