如题:如何用JS按将日期排序?
例如:
<li>2011-1-1</li><li>2011-1-7</li><li>2011-1-2</li><li>2011-3-1</li><li>2011-2-1</li>
让它打开后自动按日期排序,不要说可以在数据查询的时候排序,我这些数据都是几个表来的,不好操作...谢谢!

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <ul id="test">
    <li>2011-1-1</li>
    <li>2011-1-7</li>
    <li>2011-1-2</li>
    <li>2011-3-1</li>
    <li>2011-2-1</li>
    </ul>
    <script type="text/javascript">
    var lis = document.getElementById('test').getElementsByTagName('li');  //这里根据实际情况自己修改下
    var arrMS = new Array();
    var d = new Date();
    d.setHours(0,0,0,0);
    for(var i = 0; i < lis.length; i ++) {
    //日期转毫秒数
    var strDate = lis[i].innerHTML;
    var arrTmp = strDate.split('-');
    arrMS.push(d.setFullYear(arrTmp[0],arrTmp[1] - 1,arrTmp[2]));
    }
    arrMS.sort();
    var html = '';
    for (i = 0; i < arrMS.length; i ++) {
    d.setTime(arrMS[i]);
    html += '<li>' + d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + '</li>\n';
    }
    document.getElementById('test').innerHTML = html;
    </script>
    </body>
    </html>
      

  2.   

    自定义了一个数据结构ux
    属性说明
    @dom: 保存的就是文档的DOM节点,即li节点
    @date: li节点中的Date值
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <ul>
    <li>2011-1-1</li>
    <li>2011-1-7</li>
    <li>2011-1-2</li>
    <li>2011-3-1</li>
    <li>2011-2-1</li>
    </ul>
    <script type='text/javascript'>
    var ul = document.getElementsByTagName('ul')[0];
    var lis = ul.getElementsByTagName('li');
    var ux = [];
    for (var i=0; i<lis.length; i++){
    var tmp = {};
    tmp.dom = lis[i];
    tmp.date = new Date(lis[i].firstChild.data.replace(/-/g,'/'));
    ux.push(tmp);
    }
    ux.sort(function(a,b){
    return a.date - b.date;
    });
    for (var i=0; i<ux.length; i++){
    ul.appendChild(ux[i].dom);
    }
    </script>
    </body>
    </html>
      

  3.   

    更喜欢4楼的方法,可将日期写入li下的span中,插入标题放span前,这样可以合理控制新闻类型的排序了