模糊查询 函数封装

fuzzyQuery.js

/**
 * 封装 模糊查询
 * 容器id #searchResult
 * 关键字keyWord keyWord
 * 数组数据searchDataArr searchDataArr
 */
function FuzzyQuery(options){
	// 元素
	var oList = document.getElementById(options.id);
	// 查询
	function query(){
		// 关键字
		var keyWord = options.keyWord;
		// 搜索结果
	    var searchResultList = searchByRegExp(keyWord, options.searchDataArr);
	    // 显示数据
	    renderAreas(searchResultList);
	}			
	// 显示数据
	function renderAreas(list){
	    if(!(list instanceof Array)){
	        return ;
	    }
	    oList.innerHTML = '';
	    var len = list.length;
	    var item = null;
	    for(var i=0;i<len;i++){
	        item = document.createElement('li');
	        item.className = 'mui-table-view-cell';
	        item.floorId = list[i].floorId;
	        item.modelScene = list[i].modelScene;
	        item.innerHTML = list[i].floorName;
	        item.onclick = function(){
	        	// 跳转传值
				if(this.modelScene === 'suidao'){
					// 跳转隧道页
					mui.openWindow({
						url:'query_area_tunnel.html',
						id:'query_area_tunnel.html',
						extras:{
							floorId:this.floorId,
							token:options.token
						}
					});
				}else if(this.modelScene === 'shujing'){
					// 跳转竖井页
					mui.openWindow({
						url:'query_area_shaft.html',
						id:'query_area_shaft.html',
						extras:{
							floorId:this.floorId,
							token:options.token
						}
					});
				}
	        };
	        oList.appendChild(item);
	    }
	}
	//正则匹配
	function searchByRegExp(keyWord, list){
	    if(!(list instanceof Array)){
	        return ;
	    }
	    var len = list.length;
	    var arr = [];
	    var reg = new RegExp(keyWord);
	    for(var i=0;i<len;i++){
	        //如果字符串中不包含目标字符会返回-1
	        if(list[i].floorName.match(reg)){
	            arr.push(list[i]);
	        }
	    }
	    return arr;
	}
	
	// 触发查询
	query();
}

.

原文地址:https://www.cnblogs.com/crazycode2/p/7239024.html