[问题] javascript循环中变量名称为字串加变量

楼主: wavek (狗猫猫 m(OvO)m)   2018-03-12 20:07:02
for (var i = 1; i < 5; i++) {
"num"+i = document.getElementById("i").value;
}
程式码大致如上
我有几个input 其中ID就是1,2,3,4这样
我想说定变量名称num1,num2,num3,num4来做后续处理
不过跳出错误说 "num"+i这样不行
爬文google很多 可能用错关键字
找不到..似乎没有看到有人这样用
还是说其实这个用法是错误的? 实际写网页不该用这种表示式?
ptt爬文有发现有人提出相同问题
不过看起来前人没有得到解答XD
有推文回说使用eval()
目前试过eval("num"+i) 跟 evla("'num'+i")
都没办法
请问一下该如何写才正确
作者: Ayukawayen (亚布里艾尔发芽>//<)   2018-03-12 20:21:00
你可以用array处理掉就好吗?
作者: diabloevagto (wi)   2018-03-12 20:25:00
不能这样写
作者: qazwsx9006 (松鼠!碰器!)   2018-03-12 21:20:00
用一个object 来存?
作者: Hevak (Arthow Eshes)   2018-03-12 21:44:00
1234这种有顺序的用阵列去array.push就好...名称真的很重要的时候开一个变量用物件存+1
作者: InfinityGate (小鸟)   2018-03-12 22:22:00
没人会这样写吧 用物件或阵列不过硬要这样在外面宣告那些变量操作的话可以 window["num"+i] = ...
作者: Ayukawayen (亚布里艾尔发芽>//<)   2018-03-13 23:27:00
getElementById(i) //不要引号 那样会是字串"i"
作者: froce (froce)   2018-03-14 17:33:00
https://ithelp.ithome.com.tw/m/questions/10188590刚好最近看到,不过个人还是建议你用个object去存。Debug的时候,要看全部的变量简单多了,又没有影响其他全域变量的危险。
作者: Gold740716 (项为之强)   2018-03-14 20:03:00
eval('num' + i + '= document.getElementById("i"))
作者: chen5252 (锋炮炸裂)   2018-03-15 18:47:00
你回问那样的写法是找出Id=“I”的东西,而不是找出变量i耶*回文所以他找不到东西,你后面又接.value就会出错
作者: peanut97 (丁丁)   2018-03-19 12:23:00
或用 let a = [];也行

Links booklink

Contact Us: admin [ a t ] ucptt.com