为什么这不起作用?我认为这在逻辑上是正确的。
P.S:我是JavaScript新手。
JavaScript部分:
var i;
for(i=1; i=3; i++)
{
var bbb[i] = document.querySelector('.txtt[i]');
console.log(bbb[i].value);
}
HTML部分:
<input type="text" id="txtt1" class="txtt1" value="">
<input type="text" id="txtt2" class="txtt2" value="">
<input type="text" id="txtt3" class="txtt3" value="">
期望: bbb [i]应包含特定输入元素的值,因为每次循环运行时都应创建一个新变量。
实际:控制台显示错误
SyntaxError:意外令牌:'['
答案 0 :(得分:3)
有几个问题。首先,检查您的循环。我认为您的意思是这样:
for(i=1;i<=3;i++)
此外,我认为您希望此行改为:
var bbb[i]=document.querySelector('.txtt'+i);
这是你的本意吗?
答案 1 :(得分:3)
您的代码有一些问题:
在您的for循环中,您没有停止条件,仅当“ i == 3”时,您编写的代码才会进入for循环。您的目标是只要i小于或等于3“ i <= 3”
在代码的这一部分:
var bbb[i]=document.querySelector('.txtt[i]');
您每次运行循环时都要初始化“ bbb”数组,它应该首先在for循环之外进行初始化,并且您对“ i”变量的使用是错误的,因此无论如何实际上您每次都将使用相同的文本“ i”的值
此代码将起作用:
var bbb = [];
for(var i=1 ; i<=3 ; i++)
{
bbb[i]=document.querySelector('.txtt'+i);
console.log(bbb[i]);
}
答案 2 :(得分:2)
您的for循环是错误的,并使用concatenation('+')进行选择来制作元素ID
var i;
var bbb=[];
for(i=1;i<=3;i++)
{
bbb[i]=document.querySelector('.txtt'+i+'');
console.log(bbb[i].value);
}
<input type="text" id="txtt1" class="txtt1" value="a">
<input type="text" id="txtt2" class="txtt2" value="b">
<input type="text" id="txtt3" class="txtt3" value="c">