国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js 關鍵詞高亮(根據ID/tag高亮關鍵字)案例介紹

2024-05-06 14:19:50
字體:
來源:轉載
供稿:網友
代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JS 關鍵詞高亮</title>
<script type="text/javascript">
/*
* 參數說明:
* obj: 對象, 要進行高亮顯示的html標簽節點.
* hlWords: 字符串, 要進行高亮的關鍵詞詞, 使用 豎杠(|)或空格分隔多個詞 .
* bgColor: 背景顏色,默認為紅色.
*/
function MarkHighLight(obj, hlWords, bgColor) {
hlWords = AnalyzeHighLightWords(hlWords);
if (obj == null || hlWords.length == 0)
return;
if (bgColor == null || bgColor == "") {
bgColor = "red";
}
MarkHighLightCore(obj, hlWords);
//執行高亮標記的核心方法
function MarkHighLightCore(obj, keyWords) {
var re = new RegExp(keyWords, "i");
var style = ' style="background-color:' + bgColor + ';" '
for (var i = 0; i < obj.childNodes.length; i++) {
var childObj = obj.childNodes[i];
if (childObj.nodeType == 3) {
if (childObj.data.search(re) == -1) continue;
var reResult = new RegExp("(" + keyWords + ")", "gi");
var objResult = document.createElement("span");
objResult.innerHTML = childObj.data.replace(reResult, "<span" + style + ">$1</span>");
if (childObj.data == objResult.childNodes[0].innerHTML) continue;
obj.replaceChild(objResult, childObj);
} else if (childObj.nodeType == 1) {
MarkHighLightCore(childObj, keyWords);
}
}
}
//分析關鍵詞
function AnalyzeHighLightWords(hlWords) {
if (hlWords == null) return "";
hlWords = hlWords.replace(//s+/g, "|").replace(//|+/g, "|");
hlWords = hlWords.replace(/(^/|*)|(/|*$)/g, "");
if (hlWords.length == 0) return "";
var wordsArr = hlWords.split("|");
if (wordsArr.length > 1) {
var resultArr = BubbleSort(wordsArr);
var result = "";
for (var i = 0; i < resultArr.length; i++) {
result = result + "|" + resultArr[i];
}
return result.replace(/(^/|*)|(/|*$)/g, "");
} else {
return hlWords;
}
}
//利用冒泡排序法把長的關鍵詞放前面
function BubbleSort(arr) {
var temp, exchange;
for (var i = 0; i < arr.length; i++) {
exchange = false;
for (var j = arr.length - 2; j >= i; j--) {
if ((arr[j + 1].length) > (arr[j]).length) {
temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp;
exchange = true;
}
}
if (!exchange) break;
}
return arr;
}
}
//end
function search() {
var obj = document.getElementById("waiDiv");
var keyWord = document.getElementById("keyWord");
MarkHighLight(obj, keyWord.value, "Orange");
}
</script>
</head>
<body>
<div id="waiDiv">
<input type="text" id="keyWord" />
<input type="button" value="搜索" onclick="search()" /><br />
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 大荔县| 探索| 红桥区| 苗栗县| 宜丰县| 定陶县| 巴楚县| 卢氏县| 资阳市| 洪泽县| 贵港市| 日喀则市| 句容市| 通化县| 麻城市| 金沙县| 游戏| 太保市| 乐清市| 日土县| 德钦县| 孝昌县| 宿迁市| 宜宾市| 宜丰县| 日土县| 栖霞市| 大厂| 长泰县| 渝中区| 陵川县| 临武县| 北流市| 丹阳市| 克什克腾旗| 汨罗市| 吉林省| 毕节市| 武宁县| 鲁山县| 鲁山县|