2011-08-01 62 views

回答

2

有一個在這個特定的情況下,沒有「更好」,這是要歸結到什麼是最容易維護。和程序員偏好。

在某些瀏覽器,使用DOM創建單元和節點,在性能方面,比別人快。某些用戶代理更快地處理字符串,例如通過設置innerHTML屬性。

我個人更喜歡使用DOM對象永遠,但我用MooTools的框架,它適合於這種方法。 jQuery鼓勵基於字符串的創建。

退房這個基準測試:http://jsperf.com/string-vs-createelement/3,還要考慮這些文章:http://www.quirksmode.org/dom/innerhtml_old.htmlhttp://karma.nucleuscms.org/item/101

+0

** NB **:innerHTML已經包含在W3C的DOM規範中,僅限於HTML5。 – user278064

2

這是更好地使用DOM節點的功能。如果你想用字符串創建它,請查看jQuery,因爲它有方法可以將它正確地解析爲DOM節點。

var foo = $('<div> bar </div>'); 
0

使用DOM操作功能,你可以有一個參考創建的元素,一個接一個,而且會更容易修改代碼稍後,例如修改樹順序,添加或刪除元素,以及用於調試目的。

此說,也有一些時候,我經歷了自己在其中的DOM操作功能是不是最好的方式。

比如我有必要修改實時的風格標籤的內容,直接通過文本的CSS規則控制元素的樣式,是你無法在使用各種JS樣式對象所有的瀏覽器實現,因爲它們包含只讀屬性。

在這種情況下,IE的樣式標籤html是隻讀的(或者至少IE不喜歡通過innerHtml或類似的方式修改它),我發現的唯一解決方案是讀取舊的html值,更改它,在創建元素時,刪除元素並使用直接在字符串中輸入的新html創建一個新的樣式標記元素。

這就是說,我會與DOM節點的功能去儘可能。