在我的页面上,有20个html输入元素,其id为idx1,idx2,idx3 ..... idx20。我使用以下函数迭代20项以获取它们的值。这可能不是最佳方式。显然,它会抛出Uncaught TypeError: Cannot read property 'value' of null
错误。我分配id的方式是错误的。做正确的方法是什么?
function chkit(){
var rs = "idx";
for (c=1; c<21; c++) {
rs += c;
var an = document.getElementById(rs).value;
return an;
}
}
答案 0 :(得分:0)
您错过了在var rs
循环中将idx
重新初始化为var rs = "idx";
for
。因此,请从
function chkit(){
var rs = "idx";
for (c=1; c<21; c++) {
rs += c;
var an = document.getElementById(rs).value;
return an;
}
}
到
function chkit(c){
var rs = "idx" + c;
var an = document.getElementById(rs).value;
return an;
}
for (c=1; c<21; c++) {
var value = chkit(c);
console.log(value);
}
现在for
循环将调用函数chkit()
,使其不会像在for
循环中那样从第一次迭代返回。使用它会始终将rs
的值设置为"idx" + c
,以使其idx1
,idx2
,idx3
等等。使用这些值,代码document.getElementById(rs).value;
将正常运行,您将无法获得该错误。