需求
就是这样的最终结果,不同的费用类别要显隐不同的起点终点,费用类别很多种,如果要用if语句进行判断要写很多与或表达式,这里就想到了用jQuery封装好的inArray方法,判断所选中的值是否在备选数组中,然后再具体的操作显隐。
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(); } }
评论前必须登录!
注册