我需要根据如下所示的单个字符串的值使用数据表对表进行排序:
Number 23624 of 2010
Number 14502 of 1942
Number 10530 of 1942
Number 56020 of 2010
Number 06205 of 1997
我已经拆分了这个单一的字符串,这样我就有了 2 个数值 XXXXX 和 YYYY。
我需要做的是,如果 YYYY 相同并且在顶部有最新的 YYYY,则按 XXXXX 排序。例如:
Number 23624 of 2010
Number 56020 of 2010
Number 06205 of 1997
Number 10530 of 1942
Number 14502 of 1942
有人可以建议吗?我将oSort函数与 DataTables 一起使用。
编辑:根据要求,这是代码:
jQuery.fn.dataTableExt.oSort['its-no-asc'] = function(a,b) {
if(!j(a).is("a")) {
x = a;
} else {
x = j(a).text();
}
if(!j(b).is("a")) {
y = b;
} else {
y = j(b).text();
}
x_array = x.split(" ");
y_array = y.split(" ");
x_numbers_array = [];
y_numbers_array = [];
j.each(x_array, function(key, value) {
orig_value = value;
value = value.replace("Number", "");
value = parseInt(value);
if(j.isNumeric(value)) {
x_numbers_array.push(value);
}
});
j.each(y_array, function(key, value) {
orig_value = value;
value = value.replace("Number", "");
value = parseInt(value);
if(j.isNumeric(value)) {
y_numbers_array.push(value);
}
});
y_no = y_numbers_array[0];
y_year = y_numbers_array[1];
x_no = x_numbers_array[0];
x_year = x_numbers_array[1];
//console.log(x_year);
if(x_year == y_year) {
if(x_year == y_year && x_no < y_no) {
return -1;
} else if (x_year == y_year && x_no > y_no) {
return 1;
} else if (x_year == y_year) {
return 0;
}
} else if(x_year < y_year) {
if(x_year < y_year && x_no < y_no) {
return -1;
} else if (x_year < y_year && x_no > y_no) {
return 1;
} else if (x_year < y_year) {
return 0;
}
} else if(x_year > y_year) {
if(x_year > y_year && x_no < y_no) {
return -1;
} else if (x_year > y_year && x_no > y_no) {
return 1;
} else {
return 0;
}
}
};
jQuery.fn.dataTableExt.oSort['its-no-desc'] = function(a,b) {
//
};
j(document).ready(function() {
j('.treaty-table').dataTable({
"sPaginationType": "full_numbers",
"aoColumns": [
{ "sType": "its-no" },
null,
null,
null,
null
]
});
});