首页 > 代码库 > 节点插入
节点插入
对于早期的w3c浏览器,并没有实现ie的私有方法insertAdjacentHTML,可以用appendChild模拟该方法的实现:
if(typeof HTMLElement !==‘undefined‘ && !HTMLElement.prototype.insertAdjacentHTML){ var insertAdjacentElement = function(node,position,el){ switch (position.toLowerCase()){ case ‘beforebegin‘: node.parentNode.insertBefore(el,node); break; case ‘afterbegin‘: node.insertBefore(el,node.firstChild); break; case ‘beforeend‘: node.appendChild(el); break; case ‘afterend‘: if(node.nextSibling){ node.parentNode.insertBefore(el,node.nextSibling); }else{ node.parentNode.appendChild(el); } break; } }; HTMLElement.prototype.insertAdjacentHTML = function(position,html){ var range = document.createRange(),frag, parent; range.setStart(document.body); frag = range.createContextualFragment(html); if(this.nodeType == 3 || this.nodeType == 8){ parent = this.parentNode; insertAdjacentElement(parent,position,frag); }else{ insertAdjacentElement(this,position,frag); } } }
但是出于好奇,我用了jsperf对插入节点的各个方法进行性能分析,发现依旧是appendChild的插入方法效率最高(指的是单位时间内的操作数)。
节点插入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。