※ 引述《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