作者gpmm (银色)
看板Web_Design
标题Re: [问题] 让不同的选项对应正确的值
时间Tue Feb 19 16:33:57 2008
※ 引述《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