[問題] 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