我有一些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