插入操作时的一个特殊需求,如果此节点没有加入DOM树就克隆一份,否则就直接移动节点!
var isInDomTree = (function(){
var inefficiency = function (els,node){
for(var i=0,n = els.length;i<n;i++){
if(els[i] === node){
return true
}
if(els[i] && els[i].childNodes.length > 0){
var e = inefficiency(els[i].childNodes,node);
if(e) return e;
}
}
return false
},
root = document.documentElement;
return root.compareDocumentPosition ? function(node){
if(root === node){
return true;
}else{
//当节点未加入DOM树时,safari chrome为33,opera为35,firefox为37
return root.compareDocumentPosition(node) < 33
}
}:function(node){
if(node.nodeType === 1){
return root.contains(node);//相当或包含为true,但必须两者为元素节点
}else{
return inefficiency([root],node);
}
}
})();