美好的一天。
我正在寻找jQuery中的switch
替换。基本上,我不知道如何替换switch
。
我在大约70个国家/地区关注switch
。有没有办法用loop
替换它?
$("#country").change(function () {
switch ($('#country :selected').val()) {
case 'pl':
$("fieldset#state").hide().load('pl.txt').fadeIn(800);
break;
}
});
另外,如果已经选择了项目,是否有可能自动实现加载特定文件?
修改
我对这个问题的描述不是最好的。对不起。主要问题是:
switch
国家/地区来阅读文件,如果没有,我默认插入文字字段此致 汤姆
答案 0 :(得分:5)
你可以这样做:
$("#country").change(function () {
$("fieldset#state").hide().load($('#country :selected').val() + '.txt').fadeIn(800);
});
修改强>:
对于可用国家/地区的列表,您可以将它们放在一个数组中,然后进行搜索
$("#country").change(function () {
var supportCountries = ['pl',]; //put more here
var country = $('#country :selected').val();
if(supportCountries.indexOf(country))
$("fieldset#state").hide().load(country + '.txt').fadeIn(800);
else
$("fieldset#state").hide().load('default.txt').fadeIn(800); //here is load the default text, change if you has another way.
});
有关详细信息,如果要替换switch
,请让我们使用for
/ loop
查找匹配的大小写,然后针对该大小写执行操作。
答案 1 :(得分:1)
这个怎么样,它假设你遵循在文本文件“pl.txt”的名称中使用国家代码“pl”的惯例......
$("#country").change(function () {
var fileName = $('#country :selected').val() + '.txt';
$("fieldset#state").hide().load(fileName).fadeIn(800);
});
答案 2 :(得分:0)
您是否可以创建一个关联数组(即对象),键入所有$('#country :selected').val()
值并映射到1)函数,或2)具有适合您要为每个操作执行的操作的字段的对象?
然后你可以做
var lookup = { 'p1': function() { $("fieldset#state").hide().load('pl.txt').fadeIn(800); } }
//or
var lookup = { 'p1': { selector: 'p1.txt', speed: 800 } };
action = lookup[$('#country :selected').val()];
action();
//or
$("fieldset#state").hide().load(action.selector).fadeIn(action.speed)
答案 3 :(得分:0)
如果文本文件的名称始终与表单元素中的值相同,那么您可以像这样创建一个变量
$("#country").change(function () {
var counrty = $('#country :selected').val();
$("fieldset#state").hide().load(country+ '.txt').fadeIn(800);
}
});