展开if语句

时间:2014-06-26 03:59:05

标签: javascript jquery html

创建下面的代码段是为了隐藏或显示下拉菜单,具体取决于所选内容。在下面的情况中:

**TRANSLATION**
If modelyear <= 67
And assyplant=bf
Or modelyear >=68 
then display the following dropdowns etc.

我想要的是扩展以下内容:

If modelyear <=67
And assyplant =bf
OR 
modelyear <=67
And assyplant =bc
Or modelyear >=68 then display the following dropdowns etc etc etc.

已经有以下工作代码:

// model_year + assy_plant logic
                if (thisField == 'model_year' || thisField == 'assy_plant') {
                    var modelYear = parseInt($('#model_year').children('option:selected').text());
                    if (isNaN(modelYear)) {
                        return;
                    }
                    var assyPlant = $('#assy_plant').children('option:selected').text();

                    $('tr#row6').css('display', 'none');
                    $('tr#row7').css('display', 'none');
                    $('tr#row6 select').attr('disabled', 'disabled');
                    $('tr#row7 select').attr('disabled', 'disabled');
                    if (((modelYear <= 67 && assyPlant.toLowerCase()) == 'bf') 
                    || modelYear >=   68) {
                        $('tr#row6').css('display', 'table-row');
                        $('tr#row6 select').removeAttr('disabled');
                    } else {
                        $('tr#row7').css('display', 'table-row');
                        $('tr#row7 select').removeAttr('disabled');
                    }
                }

我将来可能需要添加额外的assyplant值。谢谢你的时间。

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery.inArray()检查assyplant是否为可能的值之一。

var assyplants = ['bf', 'bc']; // Expandable list of assyPlant values to check for

if ((model_year <= 67 && jQuery.inArray(assyPlant.toLowerCase(), assyplants)!==-1) 
     || model_year >= 68) 
{ ...

答案 1 :(得分:0)

由于您提到添加其他assyplant值的可能性,我建议将所有可能性存储在数组中,然后使用array.some()方法

var poss_values = ['bf', 'bc']; 

var check_assy = poss_values.some(function(val){
        return assyPlant.toLowerCase() === val;
    })
if ((modelYear <= 67 && check_assy) || modelYear >=   68) {
        $('tr#row6').css('display', 'table-row');
        $('tr#row6 select').removeAttr('disabled');
        } else {
                $('tr#row7').css('display', 'table-row');
                $('tr#row7 select').removeAttr('disabled');
        } 

答案 2 :(得分:0)

if (((modelYear <= 67 && assyPlant.toLowerCase()) == 'bf') 
                    || modelYear >=   68) {
                        $('tr#row6').css('display', 'table-row');
                        $('tr#row6 select').removeAttr('disabled');
                    } 
 else if (((modelYear <= 67 && assyPlant.toLowerCase()) == 'bc') 
                    || modelYear >=   68) {
                        $('tr#row6').css('display', 'table-row');
                        $('tr#row6 select').removeAttr('disabled');


                    } else {
                        $('tr#row7').css('display', 'table-row');
                        $('tr#row7 select').removeAttr('disabled');
                    }
                }

                else {
                        $('tr#row7').css('display', 'table-row');
                        $('tr#row7 select').removeAttr('disabled');
                    }
                }

我添加了一个else if语句,因此您可以添加更多assyPlant。当然,您必须为它们分配一个新的var:var values =['bf', 'bc'];

相关问题