我有html和jquery用于排序我的表(也有非标准排序(使用多tbody))。
我的代码可以在这里找到:http://jsfiddle.net/GuRxj/
正如你在那里看到的那样,价格(俄罗斯Цена)的价格是按升序排序的(但是技术 - 不是!?为什么?(这也是一个问题))...但是如你所见,我需要发送这个tr的价格是这个tbody的顶部(现在有底部),而空价格tr发送到底部... 怎么做?
js的一部分:
$('.prcol').click(function(e) {
var $sort = this;
var $table = $('#articles-table');
var $rows = $('tbody.analogs_art > tr',$table);
$rows.sort(function(a, b){
var keyA = $('td:eq(3)',a).text();
var keyB = $('td:eq(3)',b).text();
if (keyA.length > 0 && keyB.length > 0)
{
if($($sort).hasClass('asc')){
console.log("bbb");
return (keyA > keyB) ? 1 : 0;
} else {
console.log(keyA+"-"+keyB);
return (keyA > keyB) ? 1 : 0;
}
}
});
$.each($rows, function(index, row){
//console.log(row);
$table.append(row);
//$("table.123").append(row);
});
e.preventDefault();
});
答案 0 :(得分:1)
修正演示 http://jsfiddle.net/RwW9q/3/ 或 http://jsfiddle.net/tcZNH/
休息代码应该清楚明白,
Надеюсь,чтоэтоFIDSвашипотребности:)
(希望它符合您的需要)
<强>代码强>
jQuery(function($) {
var table = $('table');
$(document).ready(function() {
$('.prcol').click(function(e) {
var $sort = this;
var $table = $('#articles-table');
var $rows = $('tbody.analogs_art > tr', $table);
$rows.sort(function(a, b) {
var keyA = $('td:eq(3)', a).text().toUpperCase();;
var keyB = $('td:eq(3)', b).text().toUpperCase();;
if (keyA.length > 0 && isNaN(parseFloat($('td:eq(3)', b).text()))) return Ascending(keyA, keyB);
});
$.each($rows, function(index, row) {
//console.log(row);
$table.append(row);
//$("table.123").append(row);
});
e.preventDefault();
});
});
});
function Ascending(a, b) {
if (a > b) return -1;
if (a < b) return 1;
return 0;
}