看板 Web_Design 關於我們 聯絡資訊
※ 引述《ksl (只動手指的阿宅)》之銘言: : 當按了數量後就會設定食物蛋白質的值 : 食物蛋白質.value=Prot(食物種類.value)*食物數量.value : ( ↑蛋白質那格的name...以此類推) : 不過感覺上好像還有更有效率的做法 : 不知道小弟的程式有沒有什麼需改進的地方,或有什麼建議 : 麻煩各位指教,感謝<(_ _)> 其實不是很懂你的完整需求(汗) 不過你可以用比較物件化的作法。 現在進行選擇之後是用 switch case 判斷, 可是這樣每次要更新增減種類,都必須更動好幾個地方, 所以你可以這樣改看看。 <select onchange="Prot (this);"> <option value="2" calorie="100">豆漿</option> <option value="3" calorie="200">牛奶</option> </select> function Prot (o) { var cal = o.options[o.selectedIndex].getAttribute ('calorie'); // cal 自行運用 } 另外像如果屬性有很多,不想一直 getAttribute,也可以 <option value="2" para="calorie:100;protein:10">豆漿</option> <option value="2" para="calorie:200;protein:20">牛奶</option> function Prot (o) { var para = getPara (o); //para['calorie']、para['protein'] 自行運用 } function getPara (o) { var para = Array (), tmp = Array (), split = o.options[o.selectedIndex].getAttribute ('para').split (';'); for (var i=0; i<split.length; i++) para[(tmp = split[i].split (':'))[0]] = tmp[1]; return para; } 但這樣缺點是 para 會有閱讀不易的情況。 :P 所以自行斟酌吧~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.19.91