javascript select options 排序(保持option 对象完整性)
function addOption(object, object2) {
each(object2, function(o, index) {
object.options[index] = o;
})
}
function sortlist(sortName,isDesc) {
var what = document.getElementById(sortName);
this._options = map(what.options, function(o) {
return o;
});
this._options.sort( function(a, b) {
if (a.text > b.text) {
return isDesc == true ? 1 : -1;
} else {
return isDesc == true ? -1 : 1;
}
});
what.options.length = 0;// clear current options
addOption(what, this._options);
}
function map(object, callback, thisp) {
var ret = [];
each.call(thisp, object, function() {
ret.push(callback.apply(thisp, arguments));
});
return ret;
}
function each(object, callback) {
if (undefined === object.length) {
for ( var name in object) {
if (false === callback(object[name], name, object))
break;
}
} else {
for ( var i = 0, len = object.length; i
111
333
444
222
333
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]