我有问题。在这方面工作了很长时间,但真的卡住了。在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,为什么标记为重复?也许问题的想法可能类似,但我完全以其他方式提出这个问题,所以即使我要找的答案也不同。此外,我之前看过这个问题,我无法完全理解它是如何运作的。因此对于像我这样的其他初学者来说,这个问题可能更有用。感谢。
答案 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;
}