JavaScript节点克隆
JS克隆节点可以使用cloneNode方法。如果克隆节点下所有的子节点,需要传递参数true,这样就能得到节点深度拷贝的一个副本。JS本身提供的这个方法并不像jQuery的clone方法可以深度克隆事件绑定函数。
克隆节点的分为三步,第一得到需要克隆节点的引用,第二调用改节点的cloneNode方法,第三把克隆的节点插入文档。
var node = document.getElementById('id');
node.cloneNode(true);
node.parentNode.appendChild(node);
克隆节点时,节点所有的属性都会被克隆,那么我们就会想,可不可以克隆节点的绑定事件。这个在IE浏览器里可以实现,所采用的事件绑定方式只能是attachEvent。
当我们要动态生成的相同的节点,是采用document.createElement效率高还是去克隆节点。在我的测试中,IE系列和Opera克隆节点会显得效率比较高。在这个IE横行的国内,还是采用克隆的方式比较好。我做了一个测试页,查看演示。
// 克隆节点的方式
var span = document.createElement('span');
while ( i < 100000) {
cloneSpan = span.cloneNode(true);
i++;
}
// 看起来比较2的方式
while ( i < 100000) {
var span = document.createElement('span');
i++;
}
现在还没有评论
留下您的大名