select options 排序(保持option 对象完整性)
2010-03-10 13:17
134 查看
// 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);
}
// ]]>
111
333
444
222
333
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);
}
// ]]>
111
333
444
222
333
<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>
相关文章推荐
- javascript select options 排序(保持option 对象完整性)
- javascript select options 排序(保持option 对象完整性)
- 10.7+preserve+whole+object(保持对象完整性)
- QPointer,QSharedPointer,QWeakPointer的区别与使用例子(QSharedPointer类似Delphi里的引用计数,是强引用,而QWeakPointer是弱引用,不影响原始对象的引用计数,相当于是在暗中观察对象,但保持联系,需要的时候就会出现)
- 复杂对象数组的排序
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之分页与排序(附源码)
- php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
- 【php数组函数序列】之asort() - 对数组的元素值进行升序排序,保持索引关系
- 数组对象排序:Comparable和Comparator
- java list按照元素对象的指定多个字段属性进行排序
- java 对象排序,根据多个字段进行排序
- 如何对List中的对象进行排序
- JS对象字符串数组排序
- 技能库--List中根据对象的多个属性排序(122)
- ASP.Net中DataGrid翻页后继续保持(当前排序)显示
- 对于集合中的自定义对象使用collections.sort 进行排序,需要实现compartor接口
- List集合对象根据字段排序
- java ArrayList根据存储对象排序
- Json.Net学习笔记(十) 保持对象引用
- 【原创】Java 对 List 内对象根据对象属性进行排序