標籤:jquery 文檔片段
通過JS操作DOM節點可能以節點為單位進行,比如添加節點,可以createElement,createTextNode,然後用appendChild把文本節點和容器節點綁定在一起,然後再用appendChild或insertBefor添加到DOM樹中.但如果要往DOM樹中動態添加大量的節點.就會很麻煩.而且每次都會重新整理DOM,造成效能上的缺陷。
解決方案是使用文檔片段這個方法建立文檔片段。
我個人覺得應該把這個翻譯成文檔片段比較合適。
使用jQuery解決方案。
<span style="font-family:FangSong_GB2312;font-size:18px;"><html><head><title></title></head><body><ul></ul><script type="text/javascript" src="jquery-1.10.2.min.js"></script><script type="text/javascript">var arr = ["baidu","sina","telcent","ali"];var fragment = document.createDocumentFragment();$.each(arr,function(i,item){var newItem = $("<li>"+item+"</li>")[0];fragment.appendChild(newItem);});$("ul")[0].appendChild(fragment);</script></body></html></span>
也可以使用下面的方法來解決
<span style="font-family:FangSong_GB2312;font-size:18px;"><html><head><title></title></head><body><ul></ul><script type="text/javascript" src="jquery-1.10.2.min.js"></script><script type="text/javascript">var arr = ["baidu","sina","telcent","ali"];var html = "";$.each(arr, function(index, val) {html += "<li>" + val + "</li>";});$('ul').html(html);</script></body></html></span>
效果是相同的。
當然,你也可以建個新的節點,比如說div,先將oP添加到div上,然後再將div添加到body中.但這樣要在body中多添加一個<div></div>.但文檔片段不會產生這種節點.
注意:綁定片段實際上是把片段的內容附加到被綁定節點下面.並不會產生類似<fragment></fragement>的節點;
Best Wishes .