使用for循环的动态javascript变量名称

时间:2014-12-11 11:59:25

标签: javascript html variables for-loop dynamic

我有问题。在这方面工作了很长时间,但真的卡住了。在stackoverflow中搜索类似的问题并没有真正帮助我 - 因为人们有一些不同的问题,我无法实现我的代码的答案。

我有一个动态变化的<input>元素,其中的ID和值是由PHP创建的。因此,总数<input>元素可以是1或甚至10 +。

HTML:

<input id='photonumb1' type='text' value='001'/> 
<input id='photonumb2' type='text' value='002'/> 
<input id='photonumb3' type='text' value='003'/> 
...

还有一个<input id="totalphotos" />代码,其中包含创建了多少<input>个元素的值。

我希望JavaScript能够获取<input>元素的数量(可能从&#34; totalnumbers&#34;中获取值)并获取所有&#34; {的值{1}}&#34; (我假设使用photonumb*循环?)。每个元素的每个值都将被指定为新变量,如:

for()

总变量数取决于创建的var photoname1 = 001; var photoname2 = 002; var photoname3 = 003; ... 个元素的数量。

我试图提出建议,例如:

<input>

但这对我没有帮助,如果我做totalphotos = document.getElementById('totalphotos').value; for (i = 1; i <= totalphotos.length; i++) { window[photoname + i] = document.getElementById('photonumb' + i).value; } 例如,它就不会创建新变量。

任何人都有我的建议吗?提前谢谢!

-----编辑--- 嘿@Quentin,为什么标记为重复?也许问题的想法可能类似,但我完全以其他方式提出这个问题,所以即使我要找的答案也不同。此外,我之前看过这个问题,我无法完全理解它是如何运作的。因此对于像我这样的其他初学者来说,这个问题可能更有用。感谢。

2 个答案:

答案 0 :(得分:1)

window['here']变量未被命名为&#34;。

totalphotos = document.getElementById('totalphotos').value;

for (i = 1; i <= totalphotos.length; i++) { 
    window['photoname' + i] = document.getElementById('photonumb' + i).value;
}

还要注意,脚本正在立即执行,因此您必须将脚本放在HTML的末尾。

答案 1 :(得分:0)

您可能在For循环中出错。

您正在将i与总照片的长度进行比较,但它已经是照片的数量

尝试

for (i = 1; i <= totalphotos; i++) { this["photoname" + i] = document.getElementById('photonumb' + i).value; }