javascript - 在 jQuery 中管理大量 IF 语句

标签 javascript jquery

我有一个包含 100 多个不同 if 的 if 语句。

此刻我正在使用与此类似的东西......

$('select').on("change",function(){
    if(  $(this).val() === 'tennis' )  {
        $('.sport').val('raquet');
    }
    else if(  $(this).val() === 'soccer' )  {
        $('.sport').val('goal');
    }
    if(  $(this).val() === 'snooker' )  {
        $('.sport').val('cue');
    }
});

我想为英国的县建立一个,所以如果用户在下拉列表中选择“伦敦”,下一个字段将填充伦敦的邮政编码。

但是,我的问题是,我可以像上面的示例那样构建它,只是它会很大。

是否可以使用某种 xml 文件来执行此操作?或者是否可以将每个县及其值放入数组中的一个对象中并以这种方式定位?

非常感谢任何帮助,谢谢

http://jsfiddle.net/4xQeX/

最佳答案

通常的解决方案是将您的运动/对象对存储为数据,因为它数据。

var tbl = {
    tennis: 'raquet',
    snooker: 'cue',
    ...
};

然后使用这个简单的代码:

$('select').on("change", function(){
    var t = tbl[$(this).val()];
    if (typeof t === "string") $('.sport').val(t);
});

您甚至可以从单独的 JSON 文件中获取 tbl(或将其简单地存储在另一个 JS 文件中)以便于管理。

假设你想使用一个单独的 JSON 文件,叫做 things.json,那么你的文件应该是这样的:

{
    "tennis": "raquet",
    "snooker":"cue",
    ...
}

代码是这样的:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
    if (httpRequest.readyState === 4) {
        if (httpRequest.status === 200) {
            var tbl = JSON.parse(httpRequest.responseText);
            $('select').on("change", function(){
                var t = tbl[$(this).val()];
                if (typeof t === "string") $('.sport').val(t);
            });
        }
    }
};
httpRequest.open('GET', 'things.json?time='+Date.now());
httpRequest.send(); 

关于javascript - 在 jQuery 中管理大量 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18231535/

相关文章:

javascript - React - 窗口上的 beforeunload 事件不会触发

javascript - 下拉菜单(选择)——选择一个项目,并根据选择显示图片

javascript - 如何使用tab跳转到某个输入?

javascript - 如何结合json代码显示评论数

javascript - jquery固定位置 block ,切换到静态某个点

javascript - 如何修复 jQuery Mobile 的固定页脚?

jquery - CSS jQuery 选择器第 n 个 child

javascript - 延迟 Ajax 提交

JavaScript 未运行

javascript - div 使用 jquery 顺利出现