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

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;
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值