使用 getElementsByClassName 时未调用 innerHTML
innerHTML not getting called when using getElementsByClassName
我有一堆 class 名称为 "display" 的段落。我想要做的是获取表单输入值(表单是名称 "inputForm")并通过 innerHTML 将这些值分配给段落。问题是 for 循环永远不会执行。
如有任何帮助,我们将不胜感激。谢谢
function displayFormInput() {
var formElements = document.forms["inputForm"].getElementsByTagName("input");
var elements = document.getElementsByClassName('display');
for (var i; i < elements.length; i++) {
elements[i].innerHTML += formElements[i].value;
alert(i); // never gets called
}
}
您忘记在 for 循环语句中将 i
初始化为零。
为你的 for 循环试试这个:
for (var i=0; i < elements.length; i++) {
elements[i].innerHTML += formElements[i].value;
alert(i); // never gets called
}
在循环的初始化表达式中,您声明了变量 i
而没有为其赋值,这意味着它的值设置为 undefined
。因此,循环的条件始终为假:undefined < elements.length
,因此永远不会执行该语句。
for ([initialization]; [condition]; [final-expression])
statement
您可以通过声明变量并为其赋值来解决此问题:var i = 0
.
我有一堆 class 名称为 "display" 的段落。我想要做的是获取表单输入值(表单是名称 "inputForm")并通过 innerHTML 将这些值分配给段落。问题是 for 循环永远不会执行。
如有任何帮助,我们将不胜感激。谢谢
function displayFormInput() {
var formElements = document.forms["inputForm"].getElementsByTagName("input");
var elements = document.getElementsByClassName('display');
for (var i; i < elements.length; i++) {
elements[i].innerHTML += formElements[i].value;
alert(i); // never gets called
}
}
您忘记在 for 循环语句中将 i
初始化为零。
为你的 for 循环试试这个:
for (var i=0; i < elements.length; i++) {
elements[i].innerHTML += formElements[i].value;
alert(i); // never gets called
}
在循环的初始化表达式中,您声明了变量 i
而没有为其赋值,这意味着它的值设置为 undefined
。因此,循环的条件始终为假:undefined < elements.length
,因此永远不会执行该语句。
for ([initialization]; [condition]; [final-expression])
statement
您可以通过声明变量并为其赋值来解决此问题:var i = 0
.