【发布时间】:2013-04-04 11:17:24
【问题描述】:
这个问题可能很愚蠢,也可能很简单。
谁能解释一下添加 DOM 元素的最佳方法是什么。我们有这两种添加 DOM 元素的方法。
场景:需要在现有的<div id="theEl"></div> 中添加<strong>Hi</strong>。
-
通过编辑其中的 HTML。
document.getElementById("theEl").innerHTML = '<strong>Hi</strong>'; -
通过使用
document.createElement()。var hi = document.createTextNode("Hi"), strong = document.createElement("strong"); strong.appendChild(hi); mydiv = document.getElementById("theEl"); document.body.insertBefore(strong, mydiv);
问题
- 最好的方法是什么?一个是单行,另一个大约是五行。
- 什么是性能方面?
- 什么是正确的方法或最佳做法?
- 代码整体有区别吗?
如果这个问题根本没有意义,请告诉我,我很乐意关闭它甚至删除它。谢谢。
更新
对于亲密的选民来说,这不会重复该问题。我刚刚注意到的一件事是,使用createElement() 保留了附加到元素的事件处理程序。尽管这是一个很好的观点,但任何类型的基本网页中也都有 jQuery,它提供了委托和其他东西,即使在 HTML 发生变化之后,我也可以将事件附加到元素上。
伙计们,请在近距离投票时保持冷静。一种研究。
【问题讨论】:
-
我更喜欢方法 1 来进行简单的 HTML 插入。但是如果我必须使用循环生成一些节点,方法2可能更容易。
-
@KingKongFrog 感谢好友的链接! :)
-
为了性能,
innerHTML要快得多quirksmode.org/dom/innerhtml.html -
无论如何,这里要考虑的不止一件事,这就是为什么我认为它是非建设性的;没有冒犯……只是这个问题应该涵盖更窄的范围。
标签: javascript html dom