在一些tr之后用jquery对表进行排序

我有这样的html表结构:

...etc standart stuff...  then i have  ... 
Analogs

我试过这样的剧本:

 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; }); }); }); }); 

但主要的麻烦是它正在排序所有…但我只需要那个,在我的tr之后使用id 123123并在页面加载时排序…

我需要通过我的浮点​​数排序,这只是在第二个div中! 在id = 123的tr中,这很重要…我在网上看到的所有解决方案都是巨大的……我只需要在某些特定id中使用简单排序第二个td …我该如何解决?

我试过tablesorter.com。 但它不是我的…不能只为一些tr定制它…而且如果加载文件我也需要它作为分类器。

在这里尝试#2: 链接

第一排还有麻烦……

很难从你的英语中准确地说出你想要的东西,但这是我想出的:

  1. 查找所有表格。
  2. 对于每个表:
    1. 找到标有prcol类的标题单元格。 这是我们要排序的列。
    2. 找到标有sortable类的表中的所有tbody标记。
    3. 对于每个可排序的机构:
      1. 根据可排序单元格的浮点值对行进行排序
      2. 用排序的行替换旧行

为了完成这项工作,我将以下内容放入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); }); });​ 

做了一个小提琴 ,显示了工作中的代码。 我简化了表格以便更容易看到发生了什么,并且我将第三个表格主体取消了。