複製DOM節點的JavaScript函式
在重度寫JavaScript的程式設計師,可能都了解的這個函數
cloneNode()
當你有個DOM,像一個表格TABLE或是選擇項SELECT,如果不用innerHTML的方式複製,clondeNode是個很好的JavaScript選擇直接複製DOM
1 2 3 4 5 6 | myDivObj=document.createElement('div');//先製造一個DIV document.getElementsByTagName('body')[0].appendChild(myDivObj);//把製造的DIV放進BODY標籤裡面 myDivObj.innerHTML='DOM 天字一號';//填寫DIV的內容 cloneMyDivObj=myDivObj.cloneNode(true);//複製一份新的DIV document.getElementsByTagName('body')[0].appendChild(cloneMyDivObj);//把新複製的DIV塞進BODY標籤裡面 cloneMyDivObj.innerHTML+='的複製品';//更改複製的DIV的內容 |
在myDivObj.cloneNode(true)裡面的true代表是要把DOM的子節點通通一併一起複製至新的DOM裡面,反之false代表不要複製相關的子節點
順便一提,這個函式我在IE6測試無誤,既然資料來源是Firefox的官網,相信於FF也會是沒問題的。
Related posts:
- 動態下載JavaScript 節省下載時間 (Load JS on Demand) 在寫大型系統的時候,javascript會越寫越多,越寫越長,越寫越臭,然而也會佔掉頁面的下載速度,gmail在下載前面都會出現的下載圖示也是因應這個原因,不要讓使用者覺得你的程式凍住了。 這是上班遇到的問題,寫了一個大型的ajax系統已經費時一年了,當每次重新刷頁面的時候會重新下載三十幾個js檔案,使得系統處理到下載時間會到二十秒左右,雖然學了gmail放了下載進度圖示,但是這個問題已經被老闆和同事詬病了很久了。 先簡單解釋作品的架構,和為什麼會有這個問題: 該作品是匯集了三十幾個模組,每個模組的功能都不太一樣,輸入的功能也不太一樣,然而在同一個頁面,用TABS/AJAX的方式讓使用者可以在不換頁的情況下自由瀏覽不同的模組。每個模組都有至少上千行的JavaScript程式碼,因此以傳統的方式,都會崁入下列程式碼於HTML中。 <script src="../temaplateName/myJs.js"></script> 這一行標籤崁入HTML頁面,沒問題,大不了只是崁入了幾千行JS,對再爛的網路頻寬,也費不了甚麼時間。但是如果有三十幾個這個標籤,不就是強迫一次下載三萬多行的程式碼,這就需要一點時間下載了,而該作品在網芳內經過測試就費時十七秒至十八秒。 今天想到一個方法可以Load JS on...
- 回最上方 常常會看到攏長的網頁會放個”回最上方”,但是都是按一下就跳到最上面,以下是小弟做的回到最上方,但是會以比較順滑的方式滑上去。 scrollToTop=new Object(); scrollToTop.scrollTop=null; scrollToTop.scrollLeft=null; scrollToTop.action=function(){ if(scrollToTop.scrollTop==null){ var pageY =...
Related posts brought to you by Yet Another Related Posts Plugin.

我
看不懂 >”<
解釋多一點字啦 !
這篇居然連標題都沒有 = =
太殺了!!
寫程式遇到問題
搜尋進來這篇
希望大大能多指點一下…….><
有什麼問題大家一起研究吧