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

首頁 > 語言 > JavaScript > 正文

查詢綁定數據島的表格中的文本并修改顯示方式的js代碼

2024-05-06 14:12:23
字體:
來源:轉載
供稿:網友
代碼如下:
<script language="JavaScript">
function findAll(s){
if(s.length==0){
alert("請輸入查詢關鍵字");
}

s=encode(s);
var TDs=document.all.DataT1.all.tags("TD");
var num=0;
for(var i=0;i<TDs.length;i++){
var tdObj=TDs[i];
var obj=tdObj.childNodes[0];
if(!obj.className || obj.className!="highlight"){
var t=obj.innerHTML.replace(/<span/s+class=.?highlight.?>([^<>]*)<//span>/gi,"$1");
obj.innerHTML=t;
var cnt=loopSearch(s,obj);
t=obj.innerHTML;
var r=/{searchHL}(({(?!//searchHL})|[^{])*){//searchHL}/g;
t=t.replace(r,"<span class='highlight'>$1</span>");
obj.innerHTML=t;
num=num+cnt;
}
}
alert("查找到關鍵字"+num+"處");

}
function encode(s){
return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/([///./*/[/]/(/)/$/^])/g,"http://$1");
}
function decode(s){
return s.replace(///([///./*/[/]/(/)/$/^])/g,"$1").replace(/>/g,">").replace(/</g,"<").replace(/&/g,"&");
}

function loopSearch(s,obj){
var cnt=0;
if(obj.nodeType==3){
cnt=replace(s,obj);
return cnt;
}
for(var i=0,c;c=obj.childNodes[i];i++){
if(!c.className || c.className!="highlight")
cnt+=loopSearch(s,c);

}
return cnt;
}

function replace(s,dest){
var r=new RegExp(s,"gi");
var tm=null;
var t=dest.nodeValue;
var cnt=0;
var arr=new Array();
var a="";
var b="";
if(tm=t.match(r)){
cnt=tm.length;
a=tm.toString();
arr=a.split(",");
for(var i=0;i<arr.length;i++)
b="{searchHL}"+arr[i]+"{/searchHL}";
t=t.replace(r,b);
dest.nodeValue=t;
}
return cnt;
}

</script>
<style type="text/css">
.highlight{background:blue;font-weigh:bold;color:black;}
</style>

以上方法需要注意的有兩點:1,在findAll 中obj取到最小單位,否則的話替換會出亂,我在實踐中體會這一點主要是和數據島綁定有關,一般的文本是不需要這么小心的.2,replace方法將tm拆分成數組,也和表格有關,一般的文本不需要拆分

如果是一般的文本可以如下寫

代碼如下:
<script language="JavaScript">
function findAll(s){
if (s.length==0){
alert('搜索關鍵詞未填寫!');
return false;
}
s=encode(s);
var obj=document.getElementsByTagName("body")[0];
var t=obj.innerHTML.replace(/<span/s+class=.?highlight.?>([^<>]*)<//span>/gi,"$1");
obj.innerHTML=t;
var cnt=loopSearch(s,obj);
t=obj.innerHTML
var r=/{searchHL}(({(?!//searchHL})|[^{])*){//searchHL}/g
t=t.replace(r,"<span class='highlight'>$1</span>");
obj.innerHTML=t;
alert("搜索到關鍵詞"+cnt+"處")
}
function replace(s,dest){
var r=new RegExp(s,"g");
var tm=null;
var t=dest.nodeValue;
var cnt=0;
if (tm=t.match(r)){
cnt=tm.length;
t=t.replace(r,"{searchHL}"+decode(s)+"{/searchHL}")
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 邵东县| 潞西市| 平远县| 攀枝花市| 庆安县| 成武县| 益阳市| 广德县| 青阳县| 通江县| 克东县| 惠州市| 从化市| 延安市| 怀柔区| 广德县| 赣榆县| 临湘市| 桦川县| 依安县| 万山特区| 临高县| 寿光市| 阿合奇县| 大足县| 安新县| 丹巴县| 策勒县| 庆安县| 南康市| 曲麻莱县| 全南县| 来安县| 防城港市| 寻甸| 镇宁| 临邑县| 阿巴嘎旗| 徐闻县| 吴忠市| 蒙城县|