li元素按中文首字母排序

来源:互联网 发布:画册设计软件 编辑:程序博客网 时间:2024/05/21 22:30

li中含有多个数据,按其中一个数据的中文首字母排序,比单纯的中文排序和数字排序要多考虑一点。

写的粗糙,请各位大神不吝赐教。

<body>    <ul>        <li>            <span>武汉</span>            <p>wh</p>        </li>        <li>            <span>北京</span>            <p>bj</p>        </li>        <li>            <span>上海</span>            <p>sh</p>        </li>        <li><span>天津</span>            <p>tj</p>        </li>        <li>            <span>汕头</span>            <p>st</p>        </li>        <li>            <span>珠海</span>            <p>zh</p>        </li>

排序前


排序后



思路


js部分

// 暂时考虑纯中文,混有英文首字母的可以另外研究    var order = $('li');    var orderArray = [];// 中文关键词数组    var objectArray = []; // dom数组    for (var i = 0; i < order.length; i++) {        orderArray.push(order.eq(i).find('span').html() + i);// 填充数据时带上索引        objectArray.push(order.eq(i))    }    // 关键词中文排序后    var resultArray = orderArray.sort(        function compareFunction(param1, param2) {            return param1.localeCompare(param2, "zh");        }    );    // 排序索引    var newArray = [];    for (var i = 0; i < resultArray.length; i++) {        newArray.push(parseInt(resultArray[i].slice(-1)))        // 插入原来的dom节点        $('ul').append(objectArray[newArray[i]]);    }


 
原创粉丝点击