javascript select options 排序(保持option 对象完整性)
作者:bea
<html> <head></head> <script> function addOption(object, object2) { each(object2, function(o, index) { object.options[index] = o; }) } function
<html>
<head></head>
<script>
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 < len; i++) {
if (i in object) {
if (false === callback(object[i], i, object))
break;
}
}
}
}
var sOrder = true;
function sort(){
if(sOrder){
sOrder = false;
}else{
sOrder = true;
}
sortlist("select1",sOrder);
}
</script>
<body>
<select id="select1" size=6>
<option>111</option>
<option>333</option>
<option>444</option>
<option>222</option>
<option>333</option>
</select>
<input type=button value="sort" onclick="sort();">
</html>
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 两个JavaScript jsFiddle JSBin在线调试器
- JS 日期操作代码,获取当前日期,加一天,减一天
- input的focus方法使用
- JavaScript prototype对象的属性说明
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
- JS在IE和FireFox之间常用函数的区别小结
- javascript offsetX与layerX区别
- jQuery 点击图片跳转上一张或下一张功能的实现代码
- javascript 图片上一张下一张链接效果代码
- JQuery Ajax 跨域访问的解决方案
- javascript 不用reverse实现字符串反转的代码
- ExtJS 学习专题(一) 如何应用ExtJS(附实例)
- jquery 简单的进度条实现代码
- 精通JavaScript 纠正 cleanWhitespace函数
- javascript模拟滚动条实现代码
- Javascript 入门基础学习
- javascript showModalDialog,open取得父窗口的方法
- ExtJs3.0中Store添加 baseParams 的Bug
- js Date自定义函数 延迟脚本执行