javascript - 有没有一种优雅的方法来检查多个条件?

标签 javascript php jquery drop-down-menu

我有多个下拉菜单,即 part_no、part_category、make 和 model。我正在尝试显示库存中车辆零件的数量。

鉴于我通过向下拉菜单提供更多值变得更加具体,因此必须显示的部分类型越少。 (类似过滤的东西)

我试图模仿的一个很好的例子是在这个网站上找到的下拉菜单:http://www.sgcarmart.com/used_cars/listing.php?MMO=Mini&RPG=20&MOD=Austin

是否有更好的检查方法(通过所有可能的组合)而不是这样做:

         //Values from my dropdown menus
           var carmake= $('#car_make').val();
           var carmodel= $('#car_model').val();
           var partname= $('#part_name').val();
           var partcategory= $('#part_category').val(); 

           if(carmake==data['carmake'])
           {
           //do something
           }
           else if (carmake==data['carmake'] && partname==data['partname'])
           {
            //do something           
           }
           else if (carmodel==data['carmodel'] && partname==data['partname'])
           {
            //do something           
           }
           else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory'])
           {
            //do something           
           } else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory' &&partname==data['partname'])
           {
            //do something           
           }
           .
           .
           .
           .
           .              

最佳答案

将所有测试值放在一个对象中,该对象的属性名称与 data 中的相同。然后遍历所有属性,看它们是否都相同:

var search = {
    carmake: $("#car_make").val(),
    carmodel: $("#car_model").val(),
    partname: $("#part_name").val(),
    partcategory: $("#part_category").val()
};

var match = true;
$.each(search, function(prop, value) {
    if (value !== "" && value != data[prop]) { // only compare if the dropdown was selected
        match = false;
        return false; // break out of the loop
    }
});

if (match) {
    // do something
}

关于javascript - 有没有一种优雅的方法来检查多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335714/

相关文章:

javascript - 如果验证失败则调用 javascript

javascript - 使用按钮和鼠标滚动 DIV

jquery - HTML-CSS;为层次结构中的每个下一个嵌套 ul li 添加 5px 到 margin-left

javascript - 使 div 与其他 4 个 div 水平重叠并在页面上拉伸(stretch)(高度 100%?)

php - MySQL 唯一哈希插入

javascript - 需要爱尔兰电话号码的正则表达式

javascript - 非法 break 语句 (Node.js)

javascript - 使用 JS 设置 Twig 值

javascript - 在 JavaScript 中将字符串转换为 Node 元素

php - 如何在独立函数之间共享同一个变量