[jQuery]inArray方法的使用

需求

就是这样的最终结果,不同的费用类别要显隐不同的起点终点,费用类别很多种,如果要用if语句进行判断要写很多与或表达式,这里就想到了用jQuery封装好的inArray方法,判断所选中的值是否在备选数组中,然后再具体的操作显隐。

blob.png

jQuery inArray方法的使用方法

var arr = [ "大众", "别克", "雪佛兰", "福特", "宝马", "奔驰" ];  
$.inArray("福特", arr);  //返回 3,
//如果不包含在数组中,则返回 -1;

inArray实例中的使用

我这段代码是操作所有的费用明细中所有 费用类别 的变化联动。大家如果有更简单的需求,那将以下代码简单更改即可。

//加载数据时更改   地址  状态
function changeLo(sval, sidnum) {
    //a. 起始地点  终止地点  都显示
    var loAll = ["交通费"];
    //b. 只显示  终止地点
    var loEndPlace = ["招待费", "住宿费", "检验费", "咨询费", "证书费", "评审费", "资料费", "运费", "安标服务费", "材料费"];
    //c. 都不显示
    var loNone = ["邮寄费", "标书费", "其他"];
    if ($.inArray(sval, loAll) != '-1') {//默认为都显示
        
    } else if ($.inArray(sval,loNone)!='-1') {//都不显示
        $('#txtStartPlace' + sidnum).parent().hide();
        $('#txtEndPlace' + sidnum).parent().hide();
        $('label[for="txtStartPlace' + sidnum + '"]').hide();
        $('label[for="txtEndPlace' + sidnum + '"]').hide();
    } else {//只显示终点
        $('#txtStartPlace' + sidnum).parent().hide();
        $('#txtEndPlace' + sidnum).parent().show();
        $('label[for="txtStartPlace' + sidnum + '"]').hide();
        $('label[for="txtEndPlace' + sidnum + '"]').text('发生地:').show();
    }
}

分享到:更多 ()

抢沙发

评论前必须登录!