一段代码,供参考。
<!-- ==================结果过滤表单=============================== --> <form class="form-inline"> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-info active"> <input type="radio" name="flightTypeFilter" value="" checked="checked"> 全部 </label> <label class="btn btn-info"> <input type="radio" name="flightTypeFilter" value="direct"> 直飞 </label> <label class="btn btn-info"> <input type="radio" name="flightTypeFilter" value="connection"> 中转 </label> </div> 航司或航班号:<input type="text" class="form-control" id="flightFilter"/> IPCC:<input type="text" class="form-control" id="ipccFilter" size="6" /> <button class="btn btn-success" type="button" onclick="doFilter()">过滤</button> </form> <script> $(function() { $('#flightFilter').on('input propertychange', function () { doFilter(); }); $('input:radio[name="flightTypeFilter"]').change(function() { doFilter(); }); }); function doFilter(){ var flightType = $("input[name='flightTypeFilter']:checked").val(); var flightNumber=$.trim($("#flightFilter").val()); var ipcc=$.trim($("#ipccFilter").val()); var re = /\d[A-Z]|[A-Z][0-9A-Z]{1,2}\d{1,4}/g;
$("#queryResult").find("tr:gt(1)").each(function(){ var tdArr = $(this).children(); var flightText = tdArr.eq(0).html(); if(flightText.indexOf("<span")<0){ return; //儿童成人,第二行不用过滤,由第一行控制显示 } var ipccText = tdArr.eq(1).text(); var data = $(this).attr("data"); //成人儿童,两行tr的data值一样
//获取航班号 var allFlight=""; var arr; var flightCount=0; while((arr = re.exec(flightText)) !=null){ allFlight+=arr+"/"; flightCount++; } var isConnection=false; if(flightText.indexOf("回程")>=0){ //往返的,航班数>2认为是中转的 if(flightCount>2){ isConnection=true; } }else if(flightText.indexOf("去程")>=0){ //单程的,航班数>1认为是中转的 if(flightCount>1){ isConnection=true; } } var b1=false; if(flightType==""){ b1=true; }else if(flightType=="direct" && !isConnection){ b1=true; }else if(flightType=="connection" && isConnection){ b1=true; } //航班过滤 var b2 = false; if(allFlight.indexOf(flightNumber.toUpperCase())>=0){ b2=true; }
//ipcc过滤 var b3 = false; if(ipccText.indexOf(ipcc.toUpperCase())>=0){ b3=true; } //符合条件的显示 if(b1 && b2 && b3){ $("#queryResult tr[data='" + data + "']").show(); }else{ $("#queryResult tr[data='" + data + "']").hide(); //成人儿童两行都隐藏 }
}); } </script> <!-- ==================结果过滤表单=============================== -->
|