1. 程式人生 > >JavaScript實現段落文本高亮

JavaScript實現段落文本高亮

round strong center 右鍵 listener 進行 onkeyup charset mfc

代碼:

<!doctype html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
   <title>文本高亮</title>
    <style>
        .bg-red {
            background-color: red;
        }
    </style>
</head>
<body>
<div style="margin: 20px auto;text-align: center;"> <input type="text" id="search" placeholder="輸入要搜索的內容"> </div> <div style="width: 90%;margin: 20px auto;" id="con"> <p>在Web開發中經常會碰到需要動態監聽輸入框值變化的情況,如果使用 onkeydown、onkeypress、onkeyup 這個幾個鍵盤事件來監測的話,監聽不了右鍵的復制、剪貼和粘貼這些操作,處理組合快捷鍵也很麻煩。</
p> <p>js的replace默認替換只替換第一個匹配的字符,如果字符串有超過兩個以上的對應字符就無法進行替換,這時候就要進行一點操作,進行全部替換。 var strM = "這是要被替換的字符串啊啊!...</p> <p>最近在幫公司一個小孩看一個很奇怪的bug,是MFC 的一個小GUI,在客戶環境上一個輸入框中的數據總是有亂碼,導致從數據庫中查不出數據。但是奇怪的是在我們環境上重現不了,因為我們的測試環境用的是Win...</p> </div> </body> <script
> window.onload = function () { var pNodes = document.getElementById(con).getElementsByTagName(p); var searchNode = document.getElementById(search); var pTextArr = []; for(var i=0; i<pNodes.length; i++){ pTextArr.push(pNodes[i].innerHTML); } //監聽文本框的內容的變化 searchNode.addEventListener(input, function (e) { var text = this.value; for(var i=0; i<pNodes.length; i++){ var pNode = pNodes[i]; //段落節點 var pText = pTextArr[i]; //每一段的文字 var values = pText.split(text); var pNodeText = values.join(<span class="bg-red">+text+</span>); pNode.innerHTML = pNodeText; } }) } </script> </html>

效果:

技術分享

JavaScript實現段落文本高亮