我有一些javascript,看起來像這樣:使用文本和.innerHTML插入元素是錯誤的嗎?
var sel = '<option value="{value}" {selected}>{name}</option>';
...
$(index + '_expiry').innerHTML = sel; // $(index + '_expiry) is a select.
這工作得很好,在Firefox,而不是在Internet Explorer中 - 甚至沒有IE9。
There is already a solution to this problem涉及在DOM中創建新元素而不是更改innerHTML。
通過操作.innerHTML
將新元素插入頁面是否是錯誤的?我在我的網站上使用了innerHTML
的方法,這很容易。它也適用於簡單的元素,如.div
。
雖然IE
通常很煩人,但新版本有更嚴格的JavaScript解析器,可能更正確 - 例如,它不喜歡創建爲['a','b','c',]
的數組。
那麼,使用.innerHTML
在DOM中創建新的HTML元素是否糟糕,效率低下,不可靠或類似?我應該使用它僅用於插入純文本嗎?或者這只是IE benig固執?
'新版本有嚴格的JavaScript解析器,可能是更正確的 - 例如,它不象作爲創建數組[「一」,「B」,「C」,]'其實是進行了明確_incorrect_; '[ECMA-262:A.3]'允許尾隨逗號。 – 2012-01-27 16:55:37
我希望看到這轉移到編程stackexchange ...我也一直在想這個。 – 2012-01-31 02:08:15