使用JS中的for循环创建多个变量并为其分配值

时间:2019-02-18 18:24:25

标签: javascript html

为什么这不起作用?我认为这在逻辑上是正确的。

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:意外令牌:'['

3 个答案:

答案 0 :(得分:3)

有几个问题。首先,检查您的循环。我认为您的意思是这样:

for(i=1;i<=3;i++)

此外,我认为您希望此行改为:

var bbb[i]=document.querySelector('.txtt'+i);

这是你的本意吗?

答案 1 :(得分:3)

您的代码有一些问题:

  1. 在您的for循环中,您没有停止条件,仅当“ i == 3”时,您编写的代码才会进入for循环。您的目标是只要i小于或等于3“ i <= 3”

  2. 在代码的这一部分:

    var bbb[i]=document.querySelector('.txtt[i]');
    

您每次运行循环时都要初始化“ bbb”数组,它应该首先在for循环之外进行初始化,并且您对“ i”变量的使用是错误的,因此无论如何实际上您每次都将使用相同的文本“ i”的值

  1. console.log应该只获取bbb [i]而不是bbb [i] .value

此代码将起作用:

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">