js搜索 高亮匹配关键字,即时展示相关数据

xiaoxiao2021-02-28  42

searchCont:function(el,flag){ var _this = this; //空格替换 el.value = el.value.replace(' ',''); //关键字 var searchVal = $(el).val(); //目前只匹配电话高亮 if(flag){ var reText = _this.searchHighlight(_this.ulText,searchVal); $('.j_chooseList').html(reText); } //高亮匹配后需要重新获取dom var list = $(el).parent().next().find('li'); //遍历列表,匹配检索关键词 $.each(list, function(index, item){ var $item = $(item); var eleText = $item.attr('name')+$item.find('.rightIco').attr('phone'); if(eleText.indexOf(searchVal) != -1) { item.style.display = "block"; }else { item.style.display = 'none'; } }); }, searchHighlight:function(content,keyWord){ //搜索高亮匹配 var keyWordArr = keyWord.replace(/[\s]+/g, ' ').split(' '); var re; for(var n = 0; n < keyWordArr.length; n++) { re = new RegExp("(" + keyWordArr[n] + ")", "gmi"); //匹配电话 var regd = /<b class="left">(.*?)<\/b>/gmi; var outCome_exec = content.match(regd); var needArr = []; //得要截取后的号码数组 for(var i = 0;i<outCome_exec.length;i++){ var nodom = outCome_exec[i].replace(regd,'$1'); nodoms = nodom.replace(re, '<span style="color:#32b144;">$1</span>'); content = content.replace(nodom, nodoms); } } return content; }
转载请注明原文地址: https://www.6miu.com/read-2627938.html

最新回复(0)