多选Select排序

 

根据下拉框的选择排序

多选Select排序_第1张图片
///
初始化排序框

///GroupMakeUp_UserID,待排序的框的实例

///sel,排序选择框

///

function InitSortCombox(GroupMakeUp_UserID, sel) {

    if (sel != "undefine" && sel != null) {

        var GroupMakeUp_UserIDSort = document.getElementById(sel);

        //首先清空原有的值

        GroupMakeUp_UserIDSort.options.length = 0;

        CreateOption(GroupMakeUp_UserIDSort, "请选择", "0");

        for (j = 0; j < GroupMakeUp_UserID.options.length; j++) {

            //GroupMakeUp_UserIDSort中添加项(排序框)

            var s = GroupMakeUp_UserID.options[j].value.split("|");

            if (Exists(GroupMakeUp_UserIDSort, s[0])) {

                CreateOption(GroupMakeUp_UserIDSort, s[1], s[0]);

            }

        }

    }

}

 

///排序

function Sort_GroupMakeUp_UserID(param, src) {

    var oSel = document.getElementById(src);

 

    // alert(param.value);

    var arr = new Array(); // 这是关键部分

    // select中的所有optionvalue值将保存在Array

    for (var i = 0; i < oSel.options.length; i++) {

        // 如果需要对option中的文本排序,可以改为arr[i] = oSel.options[i].text;

        arr[i] = { key: oSel.options[i].innerText, value: oSel.options[i].value };

    }

    //js Array排序

    arr.sort(function(a, b) { return a.value.indexOf(param.value) == -1 ? 1 : -1; }); // 开始排序

    // 清空Select中全部Option

    oSel.options.length = 0;

 

    // 将排序后的数组重新添加到Select

    for (i = 0; i < arr.length; i++) {

        CreateOption(oSel, arr[i].key, arr[i].value);

    }

}

 

//是否已经存在

function Exists(src, param) {

    for (e = 0; e < src.options.length; e++) {

        if (src.options[e].value == param) {

            return false;

        }

    }

    return true;

}

//创建新的OPTION对象

function CreateOption(src, text, value) {

    var oOption = document.createElement("OPTION");

    src.options.add(oOption);

    oOption.innerText = text;

    oOption.value = value;

}

 

转载于:https://www.cnblogs.com/jimtomjim/archive/2009/08/21/1551542.html

你可能感兴趣的:(多选Select排序)