筛选结果关键字高亮js

筛选结果关键字高亮js

我去百度找筛选结果关键字高亮js代码,总是缺胳膊少腿的,有的区分大小写,有不区分大小写的直接把原来替换了,有的甚至直接报错。我就总结一下,详细说明看代码注释。

// 关键字变红
keywordRed (keyword) {
    if (keyword && keyword !== '') {
        // 需要高亮的html段落
        const nodesObj = document.getElementsByClassName('item-title')
        const nodes = Object.values(nodesObj)
        nodes.forEach(item => {
            // 这里如果用innerHTML,第二次搜索时会有问题,改用innerText
            let str = item.innerText
            // 不区分大小写正则表达式
            var reg = new RegExp(keyword, "gi");
            // 使用replace正则替换,回调函数的参数为匹配的原内容,这样就不会改变原本内容。
            str = str.replace(reg, function(txt){
                return "<span style='color:red;'>"+txt+"</span>";
            })
            item.innerHTML = str
        })
    }
},
// 对关键字处理(以空格作为关键字分隔符,进行多关键字搜索)
highword(nWord) {
    // 获取完整的字符串
    var array = nWord.replace(/(^\s*)|(\s*$)/g, "");
    // 以空格作为关键字分隔符,分为多个关键字
    array = array.split(" ");
    // 循环关键字,调用高亮代码
    for (var i = 0; i < array.length; i++) {
        this.keywordRed(array[i]);
    }
},
暂无评论

发送评论 编辑评论


				
上一篇
下一篇