JS中方法:
//排序方法
function sortRefresh(){
$('#tableAttrEdit1 tbody').jSort({
sort_by: "td span.sort",
is_num: "true",
item: "tr",
order: "asc"
});
}
jSort插件提供几个参数可配置:
item:指向需要排序的html内容元素,默认为div,本例中是排序div中的内容。
sort_by:指向item内需要排序的元素,默认为p,本例中要排序的是h3.title。
order:排序方式,asc-顺序,desc-倒序,默认为asc。
is_num:是否按按数字大小排序,默认是false。
sort_by_attr:是否按照html元素属性进行排序,默认为false。
attr_name:属性名称,如果sort_by_attr设置为true,则可以按照对应元素的属性进行排序。如果需要排序的是中文字符串,最好设置按照属性进行排序,属性的值可以是字母或者数字之类的。
插件:jquery.jsort.0.4.js
/*
* jSort - jQury sorting plugin
* http://do-web.com/jsort/overview
*
* Copyright 2011, Miriam Zusin
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://do-web.com/jsort/license
*/
(function($){
$.fn.jSort = function(options){
var options = $.extend({
sort_by: 'p',
item: 'div',
order: 'asc', //desc
is_num: false,
sort_by_attr: false,
attr_name: ''
},options);
return this.each(function() {
var hndl = this;
var titles = [];
var i = 0;
//init titles
$(this).find(options.item).each(function(){
var txt;
var sort_by = $(this).find(options.sort_by);
if(options.sort_by_attr){
txt = sort_by.attr(options.attr_name).toLowerCase();
}
else{
txt = sort_by.text().toLowerCase();
}
titles.push([txt, i]);
$(this).attr("rel", "sort" + i);
i++;
});
this.sortNum = function(a, b){
return eval(a[0] - b[0]);
};
this.sortABC = function(a, b){
return a[0] > b[0] ? 1 : -1;
};
if(options.is_num){
titles.sort(hndl.sortNum);
}
else{
titles.sort(hndl.sortABC);
}
if(options.order == "desc"){
if(options.is_num){
titles.reverse(hndl.sortNum);
}
else{
titles.reverse(hndl.sortABC);
}
}
for (var t=0; t < titles.length; t++){
var el = $(hndl).find(options.item + "[rel='sort" + titles[t][1] + "']");
$(hndl).append(el);
}
});
};
})(jQuery);