javascript包裹节点提高效率_javascript技巧
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript包裹节点提高效率_javascript技巧,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9368字,纯文字阅读大概需要14分钟。
内容图文
![javascript包裹节点提高效率_javascript技巧](/upload/InfoBanner/zyjiaocheng/311/b2f975ec6067433db38ad0f07aa4c469.jpg)
1,createElement,IE可以连元素属性也一起创建,但只能创建一层。
2,innerHTML,不过需要对原来的字符串进行处理,IE与FF都有许多意想不到的默认行为,可以为你多加一点东西或少加一点东西。
3,createContextualFragment,由于Opera的行为有点怪异,需要选中修改元素的位置。经日本人的测试,它转换字符串成节点的效率比innerHTML高多了,也安全多了,真是强者愈强,弱者愈弱。如果是传入元素节点,需要克隆一下,要不都变成wrapAll。如果是函数,把当前元素传进去,利用它的某些属性创建一个包裹元素。
最初的实验品(这里的wrapOuter相当于jQuery的wrap):
代码如下:
var parseHTML = function(str) {
if(document.createRange){
var range = document.createRange()
range.setStartAfter(document.body)
return range.createContextualFragment(str)
}else{
return document.createElement(str)
}
}
var wrapOuter = function(target,html){
var wrap = parseHTML(html) ;
target.parentNode.insertBefore(wrap,target);
target.previousSibling.appendChild(target)
}