假设我有不同的JS函数......
function stores(NY)
{
blah, blah, blah...
}
function stores(CA)
{
blah, blah, blah...
}
function stores(FL)
{
blah, blah, blah...
}
我希望从这个下拉菜单中运行它们......
<select onchange="stores(this.value);">
<option>Please select your state from this list...</option>
<option value="NY">New York</option>
<option value="CA">California</option>
<option value="FL">Florida</option>
</select>
最多50个美国国家,这就是为什么我需要一种简单的方法来调用这些功能,但这不起作用。任何想法将不胜感激。谢谢你们先进的!
答案 0 :(得分:2)
最简单的方法是创建一个对象文字,其键值对中的 keys 是调用函数的名称。
var methods = {
"NY": function() {},
"CA": function() {},
"FL": function() {}
};
element.onchange = function() {
methods[ this[ this.selectedIndex ].value ]();
};
这个概念摆脱了if和case语句并且是面向对象的。我们以编程方式发出事件处理程序,并根据元素所选索引的值调用函数。
答案 1 :(得分:0)
你只需要一个功能。
function stores(city) {
if (city === 'NY') {
//blah, blah, blah...
} else if (city === 'CA') {
//blah, blah, blah...
} else if (...) {
// ... and so on
}
// ...
}
答案 2 :(得分:0)
你可以通过开关案例
来做到这一点function stores(city) {
switch(city){
case 'NY':
//your stuf
break;
case 'CA':
//your stuf
break;
case 'FL':
//your stuf
break;
default:
code to be executed if n is different from above all case
}
}