<div class="codetitle"> <span><a style="CURSOR: pointer" data="88215" class="copybut" id="copybut88215" onclick="doCopy('code88215')"><u>コードをコピーします</u></a></span> コードは次のとおりです。</div> <div class="codebody" id="code88215"> <br><script language="JavaScript"> >function findAll (s){ <br>if(s.length==0){ <br>alert("クエリキーワードを入力してください") <br><br>s=encode(s); ; <br>var TDs=document.all.DataT1.all.tags("TD"); <br>var num=0; <br>for(var i=0;i<tds.length>var tdObj=TDs[i]; <br>var obj=tdObj.childNodes[0]; <br>if(!obj.className || obj.className!="highlight"){ <br>var t= obj.innerHTML .replace(/<spans class=.?highlight.?>([^<>]*)</span>/gi,"$1"); <br>obj.innerHTML=t ; <br>var cnt=loopSearch(s,obj); <br>t=obj.innerHTML; ({(?!/searchHL})|[^{])* )/ searchHL}/g; <br>t=t.replace(r,"<span class='highlight'>$1</span>"); >num= num cnt; <br>} <br>} <br>alert("キーワード "num "at" を検索) <br>関数 encode(s){ <br>return s .replace(/&/g,"&").replace(/,"/g,">").replace(/([\.*[ ] ()$^])/g,"\$1"); <br>} <br>関数 decode(s){ <br>return s.replace(/\([\.*[]()$^ ] )/g,"$1").replace(/>/g,">").replace(/,"} <br><br>関数loopSearch(s,obj){ <br>var cnt=0; <br>if(obj.nodeType==3){ <br>cnt=replace(s,obj) ; <br>return cnt; <br>} <br>for(var i=0,c;c=obj.childNodes[i];i ){ <br>if(!c.className || c.className! = "ハイライト") <br>cnt =loopSearch(s,c); <br><br>} <br>return cnt; <br><br>関数 replace(s,dest){ <br> var r=new RegExp(s,"gi"); <br>var t=dest.nodeValue; <br>var arr=new Array() ; <br>var a=""; <br>if(tm=t.match(r)){ <br>cnt=tm.length; toString (); <br>arr=a.split(","); <br>for(var i=0;i<arr.length>b="{searchHL}" arr[i] " {/searchHL}"; <br>t=t.replace(r,b); <br>return <br>} <br><br> < ;/script> <br><style type="text/css"> <br>.highlight{background:blue;font-weigh:bold;color:black;} <br></style> 🎜 ><br> <br>上記のメソッドには 2 つの注意点があります: 1. findAll で obj の最小単位を取得します。そうしないと、置換によって混乱が生じます。実際には、これは主にデータに関連していることがわかりました。 2. replace メソッドはテーブルに関連する tm を分割する必要はありません。<br><br>通常のテキストであれば、次のように記述できます <br> <br><br><br><br><br>コードをコピー<br><br><br> コードは次のとおりです:<br><br> <br> <script language="JavaScript"> </arr.length></tds.length> </div>function findAll(s){ <br>if (s.length==0){ <br>alert('検索キーワードが入力されていません! '); <br>return false; <br>} <br>s=encode(s); var obj=document.getElementsByTagName("body")[0]; .replace(/<spans class=.?highlight.?>([^<>]*)</span>/gi,"$1"); >var cnt=loopSearch(s,obj); <div class="codetitle">t=obj.innerHTML <span>var r=/{searchHL}(({(?!/searchHL})|[^{])*){/searchHL }/g <a style="CURSOR: pointer" data="79929" class="copybut" id="copybut79929" onclick="doCopy('code79929')">t=t.replace(r,"<span class='highlight'>$1</span>"); <u>obj.innerHTML=t;キーワード " cnt ") </u>} </a>function replace(s,dest){ </span>var r=new RegExp(s,"g"); </div>var tm=null; t=dest.nodeValue; <div class="codebody" id="code79929">var cnt=0; <br>if (tm=t.match(r)){ <br>t=t.replace(r ," {searchHL}" デコード "{/searchHL}") <br>dest.nodeValue=t; <br>} <br>return cnt; <br>} <br><br></script> ; <BR><BR> <BR><BR><BR>html 部分<BR><BR><BR><BR><BR>コードをコピー<BR><BR><BR> コードは次のとおりです: <BR><div class="codebody" id="code57903"> <BR><XML ID="DataBinding1" SRC="datasource.xml"></XML> <br> <br><input name="s" id="s" title="搜検索内容:"/><input type="submit" value="搜検索" onClick="findAll(s.value);return false;"/>; <BR><table width="100%" valign="top" DATASRC="#DataBinding1" id="DataT1" BORDER="1" CELLPADDING="3"> <BR><頭> <BR><tr> <BR><th>ID</th> <BR><th>名前</th> <BR><th>説明</th> <BR></tr> <br></頭> <br> <br><tr> <br><td><スパン名="ID" id="ID" datafld="CODE_ID"> </span></td> <br><td><span name="name" id="name" datafld="CODE_NAME"> </span></td> <br><td><span name="desc" id="desc" datafld="CODE_DESC"> </span></td> <br></tr> <br></tbody> <br></table> <br></body> <br> <br><div class="codetitle"> <span><a style="CURSOR: pointer" data="97423" class="copybut" id="copybut97423" onclick="doCopy('code97423')"><u>复制代</u></a></span> 代码如下:</div> <div class="codebody" id="code97423"> <br><br><? xml バージョン = "1.0" エンコーディング = "UTF-8"?> <br> <br> <br><CODE_ID>PCOMM11</CODE_ID> <br><CODE_NAME>キャラクタハンドル</CODE_NAME> <br><CODE_DESC>hkdlhglfghfkgfk</CODE_DESC> <br></ROW> <br> <br><CODE_ID>PCOMM12</CODE_ID> <br><CODE_NAME>デジタルハンドル</CODE_NAME> <br><CODE_DESC>hkdlhglfghfkgfkgggg</CODE_DESC> <br></ROW> <br></在庫> <br> </div> </tr> </div>