javascript 查找文本並高亮顯示


今天簡單滴寫了一個demo,簡單地查找目標文本並且高亮顯示。其主要用到了全局匹配和替換的方法,即:RegExp和replace

在其中遇到的一個問題是忘記了把改變了的html字符串重新寫入到容器中,導致花費的時間較多,總算解決了問題。

下面貼出demo代碼

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,user-scalable=no" />
<title></title>
<style>
    .highlight{
        background-color: yellow;
    }
</style>
</head>
<body>
    <input id="search" type="search">
    <input id="searchbtn" type="button" value="search">
    <div id="pretime">
        西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路、西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路西豐、五女山、雨格、離堆公園、迎賓路、五女山、雨格、離堆公園、迎賓路
    </div>
<script>
String.prototype.Trim = function()
{//去空格
    return this.replace(/\s/gi,"")
}

function searchTarget(searchtext){//查找處理
    var reg = new RegExp(searchtext,"g");
    var objtext = document.getElementById("pretime").innerHTML;
    var sCurText;
    if(!reg.test(objtext)){//沒找到
        alert(" can not find!");
        return;
    }
    else{//找到
        var prehtml = document.getElementById("pretime").innerHTML;//獲取目標文本容器的HTML字符串
        var newinner = prehtml.replace(reg,'<span class="highlight">'+searchtext+'</span>')//處理HTML字符串,為目標文本加上樣式,即替換對應的HTML結構
        document.getElementById("pretime").innerHTML = newinner;//把處理后的HTML字符串寫回到容器中
    }

}

window.onload = function(){
    document.getElementById("searchbtn").onclick = function(){
        var searchtext = document.getElementById("search").value.Trim();
        searchTarget(searchtext);
    }
}
</script>
</body>
</html>

效果圖:(從上面的head節點可以看出這是一個手機頁面,但是里面的代碼同樣適用於PC端)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM