是更好地使用JavaScript:document.createNode或純html?
document.createNode();
或純文本喜歡
var foo = '<div> bar </div>';
創建HTML標記的JavaScript?
是更好地使用JavaScript:document.createNode或純html?
document.createNode();
或純文本喜歡
var foo = '<div> bar </div>';
創建HTML標記的JavaScript?
有一個在這個特定的情況下,沒有「更好」,這是要歸結到什麼是最容易維護。和程序員偏好。
在某些瀏覽器,使用DOM創建單元和節點,在性能方面,比別人快。某些用戶代理更快地處理字符串,例如通過設置innerHTML
屬性。
我個人更喜歡使用DOM對象永遠,但我用MooTools的框架,它適合於這種方法。 jQuery鼓勵基於字符串的創建。
退房這個基準測試:http://jsperf.com/string-vs-createelement/3,還要考慮這些文章:http://www.quirksmode.org/dom/innerhtml_old.html和http://karma.nucleuscms.org/item/101
** NB **:innerHTML已經包含在W3C的DOM規範中,僅限於HTML5。 – user278064
這是更好地使用DOM節點的功能。如果你想用字符串創建它,請查看jQuery,因爲它有方法可以將它正確地解析爲DOM節點。
var foo = $('<div> bar </div>');
使用DOM操作功能,你可以有一個參考創建的元素,一個接一個,而且會更容易修改代碼稍後,例如修改樹順序,添加或刪除元素,以及用於調試目的。
此說,也有一些時候,我經歷了自己在其中的DOM操作功能是不是最好的方式。
比如我有必要修改實時的風格標籤的內容,直接通過文本的CSS規則控制元素的樣式,是你無法在使用各種JS樣式對象所有的瀏覽器實現,因爲它們包含只讀屬性。
在這種情況下,IE的樣式標籤html是隻讀的(或者至少IE不喜歡通過innerHtml或類似的方式修改它),我發現的唯一解決方案是讀取舊的html值,更改它,在創建元素時,刪除元素並使用直接在字符串中輸入的新html創建一個新的樣式標記元素。
這就是說,我會與DOM節點的功能去儘可能。
更好的什麼?可讀性?性能?還有別的嗎? – Oded