【发布时间】:2015-02-09 21:46:43
【问题描述】:
我有问题。在这方面工作了很长时间,但真的卡住了。在 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> 元素的数量(可能从“totalnumbers”获取一个值)并获取所有“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;
}
但这对我没有帮助,它只是不会创建新变量,例如,如果我这样做 console.log(photoname1);。
有人对我有建议吗?提前谢谢!
----- 编辑--- 嘿@Quentin,为什么标记为重复?也许这个问题的想法可能是相似的,但我完全以另一种方式问它,所以即使我正在寻找的答案也不同。而且,我以前看过这个问题,我无法完全理解它是如何工作的。因此对于像我这样的其他初学者来说,这个问题可能更有用。谢谢。
【问题讨论】:
-
P.S.我读过使用 eval() 不是一个好主意,所以我什至没有尝试过。也许有办法不用这个?
-
创建动态变量不是个好主意。为什么不把所有的值都压入一个数组?
标签: javascript html variables for-loop dynamic