我有一个问题。在这方面工作了很长时间,但确实陷入困境。在 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,为什么标记为重复?也许问题的想法可能相似,但我以完全不同的方式问它,所以即使我正在寻找的答案也是不同的。而且,我以前见过这个问题,我无法完全理解它是如何工作的。因此,对于像我这样的其他初学者来说,这个问题可能更有用。谢谢。
最佳答案
window['here']
变量未“命名”。
totalphotos = document.getElementById('totalphotos').value;
for (i = 1; i <= totalphotos.length; i++) {
window['photoname' + i] = document.getElementById('photonumb' + i).value;
}
还要注意,脚本会立即执行,因此您必须将脚本放在 HTML 的末尾。
关于javascript - 使用 for 循环的动态 JavaScript 变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422352/