→ s25g5d4:不過 現在的問題是怎麼回復被加粗的字...我累了XDDD 07/07 19:16
推 No:在<b>加上一個辨識用的attr,例如className之類的 07/07 21:09
→ No:搜尋前先反向回復,這樣呢 07/07 21:10
→ s25g5d4:這個方法不錯 可是.....明天吧 不然No大來~ 07/07 21:46
我來了XDD
原本s25大的部份新增註解的那一行
(只節錄部份)
if(i%2==1){
var a=document.createElement("b");
a.className="boldTag4Search"; //新增一行
a.appendChild(document.createTextNode(array[i]));
按鈕的onclick事件改為呼叫 goSearch,參數不變
//---以下為新增function
function goSearch(target,search_str)
{
reverse_str(target);
search(target,search_str);
}
function reverse_str(target)
{
var tag, textNode, preText, nextText;
var bt=target.getElementsByClassName('boldTag4Search');
while((tag=bt[0]))
{
preText=getNeighbor(tag.previousSibling);
nextText=getNeighbor(tag.nextSibling);
textNode=document.createTextNode((preText+tag.textContent+nextText));
tag.parentNode.replaceChild(textNode, tag);
}
}
function getNeighbor(tag)
{
if(tag==null || tag.nodeName!='#text')
return '';
var ret=tag.textContent;
tag.parentNode.removeChild(tag);
return ret;
}
//---新增部分結束
推 No:我只用FF試而已XDD 07/07 22:53
上一篇推文也適用此篇,我只用Firefox測而已
切到IE8看到不支援getElementsByClassName的錯誤我就懶了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.82.111
※ 編輯: No 來自: 111.252.82.111 (07/08 00:51)
推 s25g5d4:我找到支援IE的辦法了 可惜現在的問題是IE不支援getElemen 07/08 12:46
→ s25g5d4:tsByClassName 07/08 12:47
→ s25g5d4:IE出錯的原因是因為不支援split用正規表示式來保留被切的 07/08 12:48
→ s25g5d4:的字 而且其實我發現這樣寫沒意義 遇到疊字split就會開一 07/08 12:48
→ s25g5d4:個a[i]=""了~ 等等在PO上V2.0 XDD 07/08 12:49
→ No:大概只能自己寫IE的getElementsByClassName吧~ 07/08 12:50
推 s25g5d4:目前想到的辦法是跟search一樣 來個無限迴圈找子節點 07/08 12:56