javascript - 如何减少 if-else 语句

标签 javascript jquery ajax

还有其他方法可以减少 if-else 语句吗?此代码将通过从数据库获取整数来更改图片。我尝试减少这段代码。

  if (val["soil_h"] < 21){
       $("#ground").attr('src', 'pic/ground1.png');
    } else if (val["soil_h"] < 42){
       $("#ground").attr('src', 'pic/ground2.png');
    } else if (val["soil_h"] < 63){
       $("#ground").attr('src', 'pic/ground3.png');
    } else if (val["soil_h"] < 84){
       $("#ground").attr('src', 'pic/ground4.png');
    } else if (val["soil_h"] < 105){
       $("#ground").attr('src', 'pic/ground5.png');
    } else if (val["soil_h"] < 126){
       $("#ground").attr('src', 'pic/ground6.png');
    } else if (val["soil_h"] < 147){
       $("#ground").attr('src', 'pic/ground7.png');
    } else {
       $("$ground").attr('src', 'pic/ground8.png');
    }

最佳答案

Use /(division) as all the values are multiple of 21

试试这个:

var value=val["soil_h"]/21;
$("#ground").attr('src', 'pic/ground"'+(value % 1 === 0 ? value : 8)+'".png'); //If value is not multiple of 21, default image is set..

关于javascript - 如何减少 if-else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35721990/

相关文章:

javascript - 通过 jQuery 检查页面标题是否在数组中

jquery - 将ajax响应数组存储到变量中以供以后使用

javascript - 使用 ava 测试访问全局命名空间

javascript - Rails 前端按键验证

javascript - 在 Chrome 中,为什么包含 window.location.reload(true) 的 javascript 循环无法执行?

javascript - 更改另一个下拉选项时隐藏下拉选项

javascript - 能够在使用 keyup 事件时用键盘移动光标

javascript - 如何使缩略图 slider 响应

javascript - Firefox(54.0.1(64 位))DOM 检查器 : Cannot Pick Dom Elements after Ajax Rerender

php - Firefox 中的 JQuery SYNC Ajax 调用错误