cloneNode 使用函数方法解决深复制中id重复的问题 // var ul1=clones(ul,true); // document.body.appendChild(ul1); // 深复制修改id // function clones(sourceElem,deep,target) { // var elem; // if(sourceElem){ //如果元素存在就克隆 // elem=sourceElem.cloneNode(deep); //deep是根据传入的参数定 // }else{ // elem=target; //递归回调函数中会用到这个 // } // if(elem.id) elem.id+=1; //给有id的元素后面添加一个1 // for(var i=0;i<elem.children.length;i++){ //elem.children 是所有子元素, // clones(null,false,elem.children[i]); //回调函数,也就是把这个行数再次执行一下, //传入的参数是null也就是不再复制了,主要是修改元素的id // } // return elem; // } 浅复制 修改ID // var ul=document.querySelector("ul"); /* var ul1=clones(ul,false); document.body.appendChild(ul1); // 浅复制修改id function clones(sourceElem,deep) { var elem=sourceElem.cloneNode(deep); if(elem.id) elem.id+=1; return elem; }*/