颠倒DIV顺序

之前面试遇到这样一个问题,如何将一个div中的子元素颠倒顺序,之后总结了一下方法:

方法一:创建文档碎片,倒序遍历原div中的子元素,并插入文档碎片;

var oFrag = document.createDocumentFragment(); //创建文档碎片
var divlist = document。getElementById('container'); //获取外层的父div
var nodeList = divlist.childNodes; //获取子元素节点
for (var i = nodeList.length - 1; i >= 0; i--) {
    oFrag.appendChild(nodeList[i]);//向文档碎片中添加子元素
};、
while (divlist.hasChildNodes()) {
    divlist.removeChild(divlist.firstChild);//移除原子元素
}
divlist.appendChild(oFrag); //添加新的子元素

方法二:

function reverse(ele){
    //创建一个DocumentFragment作为临时容器
    var f = document.creatDocumentFragment();
    //从后至前循环子节点,将一个将每一个节点移动到文档片段中
    //值得注意的是,给f添加一个节点,,该节点会自动从n中删除
    while(ele.lastChild) f.appendChild(ele.lastChild);
    ele.appendChild(f);
}