Re: [問題] 有辦法完全不用innerHTML嗎?

看板Ajax作者 (you stay there)時間14年前 (2010/07/08 00:48), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串6/11 (看更多)
※ 引述《s25g5d4 (死城盜賊)》之銘言:

07/07 19:16,
不過 現在的問題是怎麼回復被加粗的字...我累了XDDD
07/07 19:16

07/07 21:09,
在<b>加上一個辨識用的attr,例如className之類的
07/07 21:09

07/07 21:10,
搜尋前先反向回復,這樣呢
07/07 21:10

07/07 21:46,
這個方法不錯 可是.....明天吧 不然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; } //---新增部分結束

07/07 22:53,
我只用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)

07/08 12:46, , 1F
我找到支援IE的辦法了 可惜現在的問題是IE不支援getElemen
07/08 12:46, 1F

07/08 12:47, , 2F
tsByClassName
07/08 12:47, 2F

07/08 12:48, , 3F
IE出錯的原因是因為不支援split用正規表示式來保留被切的
07/08 12:48, 3F

07/08 12:48, , 4F
的字 而且其實我發現這樣寫沒意義 遇到疊字split就會開一
07/08 12:48, 4F

07/08 12:49, , 5F
個a[i]=""了~ 等等在PO上V2.0 XDD
07/08 12:49, 5F

07/08 12:50, , 6F
大概只能自己寫IE的getElementsByClassName吧~
07/08 12:50, 6F

07/08 12:56, , 7F
目前想到的辦法是跟search一樣 來個無限迴圈找子節點
07/08 12:56, 7F
文章代碼(AID): #1CDA_K-t (Ajax)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 11 篇):
文章代碼(AID): #1CDA_K-t (Ajax)