Javascript &引用;分配给未声明变量";当使用;对于(i=0;”;
嘿,我试图在HTML表单中获取所有输入字段的列表,但我得到以下错误(在Firebug中):Javascript &引用;分配给未声明变量";当使用;对于(i=0;”;,javascript,Javascript,嘿,我试图在HTML表单中获取所有输入字段的列表,但我得到以下错误(在Firebug中): ReferenceError:分配给未声明的变量i for(i=0;i不是说i未赋值,而是说它未声明。代码从不声明i变量,而是尝试给它赋值(在for循环的初始化部分)。显然,您使用的是严格模式(很好!),因此引擎会给您一个错误,而不是创建一个错误 在函数中使用var声明i,例如: function listinputs() { var form = document.getElementById
ReferenceError:分配给未声明的变量i
for(i=0;i不是说i
未赋值,而是说它未声明。代码从不声明i
变量,而是尝试给它赋值(在for
循环的初始化部分)。显然,您使用的是严格模式(很好!),因此引擎会给您一个错误,而不是创建一个错误
在函数中使用var
声明i
,例如:
function listinputs()
{
var form = document.getElementById("wholeform");
var inputs = form.childNodes;
var i; // <=================================== Here
for (i=0 ; i<inputs.length; i++)
{
string=string + inputs[i].nodeName + "<br>";
here = document.getElementsByTagName("p");
here.innerHTML(string);
}
}
函数listinputs()
{
var form=document.getElementById(“wholeform”);
var输入=form.childNodes;
变量i;//用于(变量i=0;i错误消息
ReferenceError:分配给未声明的变量“x”(Firefox)
ReferenceError:x未定义(Chrome)
ReferenceError:
严格模式下未定义的变量(边)
无效案例
在这种情况下,变量“bar”是未声明的变量
function foo() {
'use strict';
bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar
有效案例
要使“栏”成为声明变量,可以在其前面添加var关键字
function foo() {
'use strict';
var bar = true;
}
foo();
对于(var i=0;…您需要使用varvar here=document.getElementsByTagName(“p”);here.innerHTML(字符串)声明它;
应该在你的循环之外,顺便说一句。@PHPglue:是的,在循环之外,getElementsByTagName
返回的列表没有innerHTML
属性……我现在看到了。是的,那将是一个数组,你必须在其上运行另一个循环。噢,是的,我不确定我为什么错过了它。可能是因为3w学校的example“for(i=0;iYet)是不应该使用w3schools的另一个原因。如果它“需要”var
,那么为什么for(q=0;q@RUJordan这就是秘密!见T.J.的答案。啊,这是有道理的。严格模式
==无全局==错误。如果您希望bar在全局范围内可用,那么var将不起作用。
for (var i=0; i<inputs.length; i++)
function foo() {
'use strict';
bar = true;
}
foo(); // ReferenceError: assignment to undeclared variable bar
function foo() {
'use strict';
var bar = true;
}
foo();