首页 新闻 搜索 专区 学院

JS如何使用sort 给 select中的option排序

0
悬赏园豆:10 [待解决问题]

在前端通过JS或JQuery 如何根据“data-flag” 的值 给这个下拉列表中所有的值重新排序,并在页面初始化时就以排好序的方式显示出来。

感谢各位大神的指点

回望天涯的主页 回望天涯 | 初学一级 | 园豆:95
提问于:2015-11-03 17:51
< >
分享
所有回答(2)
0

在绑定之前先sort后好

jello chen | 园豆:7096 (大侠五级) | 2015-11-03 19:16

不可以在后台排序,因为有一部分值是在前端写死的。

支持(0) 反对(0) 回望天涯 | 园豆:95 (初学一级) | 2015-11-04 09:19

@回望天涯: html:

<select id="sltProvince">
        <option value="1" data-flag="0">山东</option>
        <option value="2" data-flag="101">湖北</option>
        <option value="3" data-flag="2">安徽</option>
    </select>

js:

window.onload = function (parameters) {
        var sltProvice = document.getElementById("sltProvince");
        var ops = sltProvice.getElementsByTagName("option");
        var arrOps = Array.prototype.slice.call(ops, 0);
        arrOps.sort(function (a, b) {
            return a.attributes["data-flag"].value - b.attributes["data-flag"].value;
        });
        sltProvice.options.length = 0;
        arrOps.map(function (op) {
            sltProvice.appendChild(op);
        });
    } 

效果:

支持(0) 反对(0) jello chen | 园豆:7096 (大侠五级) | 2015-11-04 11:41
0

后台传的是json数据吗?把后台传的和前台写的的拼接起来,先用json排序,再渲染成option

H&Js | 园豆:106 (初学一级) | 2015-11-04 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册