我有这样的html表结构:
<table cellpadding="0" cellspasing="0" class="tablesorter zebra" id="articles-table">
<tbody>...etc standart stuff...
<tr>
<td>
</td>
</tr>
then i have
<tr id="123123">
<td colspan="7">
Analogs
</td>
</tr>
<tr id="prcol">
<td>
<td>
</td>
</td>
<tr>
...
</table>
我试过这样的剧本:
jQuery(function($) {
var table = $('table');
$(document).ready(function () {
$('#prcol')
.each(function(){
var th = $(this),
thIndex = th.index(),
inverse = false;
th.click(function(){
table.find('td').filter(function(){
return $(this).index() === thIndex;
}).sortElements(function(a, b){
return $.text([a]) > $.text([b]) ?
inverse ? -1 : 1
: inverse ? 1 : -1;
}, function(){
return this.parentNode;
});
inverse = !inverse;
});
});
});
});
但主要的麻烦在于它正在排序所有...但我只需要那个,用id 123123
跟在我的tr之后并在页面加载时排序......
我需要通过我的浮点数排序,这只是在第二个div中!在id = 123的tr中,这很重要...我在网上看到的所有解决方案都是巨大的...我只需要在某些特定id中使用简单排序第二个td ...我该如何解决?
我试过tablesorter.com。但它不是我的...不能只为某些tr定制它...如果文件被加载我也需要它作为分类器。
在这里尝试#2: link
第一排是麻烦......
答案 0 :(得分:0)
很难准确地说出你想要的英语,但这就是我想出的:
prcol
的标题单元格。这是我们要排序的列。tbody
类的表格中的所有sortable
标记。为了完成这项工作,我将以下内容放入jQuery的文档就绪事件中:
$("thead .prcol").each(function(thIdx, sortElem) {
// find our column index
var index = $.inArray(sortElem, $(sortElem).closest('tr').children());
var colSelector = "td:eq(_n_)".replace('_n_', index);
$(sortElem).closest('table').children('tbody.sortable').each(function(tbIdx) {
var rows = $(this).children('tr');
rows.sort(function(left, right) {
var leftText = $(colSelector, left).text();
var rightText = $(colSelector, right).text();
var leftValue = parseFloat(leftText) || 10000;
var rightValue = parseFloat(rightText) || 10000;
return leftValue - rightValue;
});
$(this).html(rows);
});
});
我 made a fiddle 显示正在运行的代码。我简化了表格,以便更容易看到发生了什么,并且我将第三个表格主体取消了。