2015.7.16-js-14(排序)

排序的思路:1.先for循环li得到元素集合,放到一个新建的数组里。

      2.编写数组.sort()的排序规则。

      3.for循环数组appendChild到当前的父级下。

      4.li只是元素集合,不是真正的数组Array类型,只是与数组类拟;但可以建一个数组,将li元素集合放到数组中,然后用sort排序。

var oUl = document.getElementById("nav");
var oBtn = document.getElementById("btn");
var aLi = oUl.getElementsByTagName("li");

oBtn.onclick = function(){
    var arr = [];                      //新建一个空数组  
    for(var i = 0, len = aLi.length; i < len; i++){
        arr[i] = aLi[i];            //存入在数组里后就可以使用.sort()方法排序
    }  
    //排序规则
    arr.sort(function(li1,li2){
        var n1 = parseInt(li1.innerHTML);
        var n2 = parseInt(li2.innerHTML);
        return n1 - n2;  
    });      

    //for循环数组appendChild到当前的父级中
    for(var j = 0, len = arr.length; j < len; j++){
        alert("该把"+arr[j].innerHTML+"插入到最后");
        oUl.appendChild(arr[j]);
    }
}

 

 

HTML

<ul id="nav">
    <li>2</li>
    <li>4</li>
    <li>6</li>
    <li>1</li>
    <li>3</li>
    <li>5</li>
    <li>7</li>
</ul>
<input type="button" id="btn" value="排序">

 

posted @ 2015-07-16 11:05  AlanTao  阅读(157)  评论(0)    收藏  举报