javascript – jQuery document.createElement等价?
作者:互联网
我正在重构一些旧的JavaScript代码,并且正在进行大量的DOM操作.
var d = document;
var odv = d.createElement("div");
odv.style.display = "none";
this.OuterDiv = odv;
var t = d.createElement("table");
t.cellSpacing = 0;
t.className = "text";
odv.appendChild(t);
我想知道是否有更好的方法来使用jQuery.我一直在尝试:
var odv = $.create("div");
$.append(odv);
// And many more
但我不确定这是否更好.
解决方法:
这是你在“一”行中的例子.
this.$OuterDiv = $('<div></div>')
.hide()
.append($('<table></table>')
.attr({ cellSpacing : 0 })
.addClass("text")
)
;
更新:我认为我会更新这篇文章,因为它仍然会获得相当多的流量.在下面的评论中,有一些关于$(“< div>”)vs $(“< div>< / div>”)与$(document.createElement(‘div’))的讨论作为一种创建新方法的方式元素,哪个是“最好的”.
我把a small benchmark放在一起,这里大致是重复上述选项100,000次的结果:
jQuery 1.4,1.5,1.6
Chrome 11 Firefox 4 IE9
<div> 440ms 640ms 460ms
<div></div> 420ms 650ms 480ms
createElement 100ms 180ms 300ms
jQuery 1.3
Chrome 11
<div> 770ms
<div></div> 3800ms
createElement 100ms
jQuery 1.2
Chrome 11
<div> 3500ms
<div></div> 3500ms
createElement 100ms
我认为这并不奇怪,但document.createElement是最快的方法.当然,在你开始重构你的整个代码库之前,请记住我们在这里讨论的差异(除了jQuery的古老版本之外的所有版本)相当于每千个元素额外增加3毫秒.
更新2
针对jQuery 1.7.2进行了更新,并将基准测试放在JSBen.ch上,这可能比我原始的基准测试更加科学,而且现在可以进行众包!
标签:html,dhtml,javascript,jquery,dom 来源: https://codeday.me/bug/20190911/1803662.html