首页 > js 搜索页面关键字 相关的变为红色 函数实现了 但是 第二次触发的时候不起作用

js 搜索页面关键字 相关的变为红色 函数实现了 但是 第二次触发的时候不起作用

1.在页面所有框中 搜索相关的关键字 点击搜索 页面中关键字红色 但是第二次更改关键字 搜索函数不触发 并且还是之前变色(不知道怎么处理 让他变为之前的颜色 不是红色)
2.这些数据 搜索的暂时都是死得 没有用接口。
3.

function setHeightKeyWord(id, keyword, color, bold) { 
        if (keyword == ""){ 
            return; 
        }
        var tempHTML = $("#" + id).html(); 
        var htmlReg = new RegExp("\<.*?\>", "i"); 
        var arrA = new Array(); 
        for (var i = 0; true; i++) { 
            var m = htmlReg.exec(tempHTML); 
            if (m) { 
                arrA[i] = m; 
            } else { 
                break; 
            } 
            tempHTML = tempHTML.replace(m, "[[[[" + i + "]]]]"); 
        } 
        var replaceText; 
        if (bold){ 
            replaceText = "<span style='color:" + color + ";'>$1</span>";
        } else{ 
            replaceText = "<font style='color:" + color + ";'>$1</font>"; 
        }
        var arrayWord = keyword.split(','); 
        for (var w = 0; w < arrayWord.length; w++) { 
            var r = new RegExp("(" + arrayWord[w].replace(/[(){}.+*?^$|\\\[\]]/g, "\\$&") + ")", "ig"); 
            tempHTML = tempHTML.replace(r, replaceText); 
        } 
        for (var i = 0; i < arrA.length; i++) { 
            tempHTML = tempHTML.replace("[[[[" + i + "]]]]", arrA[i]); 
        } 
        $("#" + id).html(tempHTML); 
    } 
    
    $("#searchBtn").click(function() {  
        if ($('#searchMainLayoutDefault').is(':visible')) {
            var $keyword = $("#searchInputText").val(); 
            setHeightKeyWord('searchMainLayoutDefault', $keyword, 'red', true);
        }
    }); 
    
    

因为你把原始数据搞丢了。

 var tempHTML = $("#" + id).html(); 

这是原始数据,应该保存下来,之后每次的操作都是在原始数据上。而你上面的代码 $("#" + id).html(tempHTML); 把原始数据覆盖了。后面当然覆水难收。

【热门文章】
【热门文章】