“l'assignation de variable non déclarée” lors de l'utilisation de “for (i=0; ..)”
Hé, je suis en train de récupérer la liste de tous les champs de saisie dans un formulaire HTML, mais j'obtiens l'erreur suivante(dans Firebug):
ReferenceError: assignment to undeclared variable i
for (i=0 ; i<inputs.length; i++)
Je ne pas comprendre comment un "je" non déclarées parce que c'est la première partie de "pour".
C'est ma formule
function listinputs()
{
var form = document.getElementById("wholeform");
var inputs = form.childNodes;
for (i=0 ; i<inputs.length; i++)
{
var string=string + inputs[i].nodeName + "<br>";
var here = document.getElementsByTagName("p");
here.innerHTML(string);
}
}
for(var i = 0; ... vous avez besoin de la déclarer avec le var
Ouais, en dehors de la boucle et de la liste renvoyée par
Je vois que maintenant. Oui ce serait un Tableau, que vous devez exécuter une autre boucle.
var here = document.getElementsByTagName("p"); here.innerHTML(string);
devrait être en dehors de la boucle, par la manière.Ouais, en dehors de la boucle et de la liste renvoyée par
getElementsByTagName
n'a pas de innerHTML
de la propriété...Je vois que maintenant. Oui ce serait un Tableau, que vous devez exécuter une autre boucle.
OriginalL'auteur sgp667 | 2014-04-03
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la déclarer avec
var
Que T. J a dit dans sa réponse, puisque vous êtes en utilisant le mode strict, un implicite global n'est pas faite. C'est pourquoi, une erreur est renvoyée.
Encore une autre raison pourquoi w3schools ne doit pas être utilisé.
Si les "besoins"
var
, alors pourquoi nefor (q=0;q<10;q++) {q}
Travailler Ici?Si qui auraient fonctionne, pourquoi la Fpo déclencher une erreur?
Et est le secret! Voir T. J. de réponse.
OriginalL'auteur Sterling Archer
Il ne dit pas
i
est non affecté, c'est de dire que c'est non déclarées. Le code ne déclare jamais uni
variable, mais essaie alors de lui affecter une valeur (dans l'initialisation de la partie de lafor
boucle). Apparemment, vous êtes à utiliser le mode strict (bon!), et donc le moteur est de vous donner une erreur plutôt que de créer un implicite global.Déclarer
i
à l'aide devar
dans la fonction, par exemple:Note de côté: Dans l'ES6, quand il arrive, si vous voulez, vous pouvez utiliser
let
et la portéei
à lafor
seule déclaration. Mais pour l'instant, l'utilisationvar
.OriginalL'auteur T.J. Crowder
Message d'ERREUR
Invalide cas
Dans ce cas, la variable "bar" est une variable non déclarée.
Cas valides
Pour faire "bar" une variable déclarée, vous pouvez ajouter le mot-clé var en face d'elle.
OriginalL'auteur Sankar_k