2015-07-21 42 views
1

我有一个表格填充数据库中的数据。这张表可排序感谢jQuery tablesorter。我的问题是主表中的一个单元格包含另外两个表格。所以在主表上排序不再工作。我如何强制只在主表上进行排序?JQuery tablesorter,<table> in <table>(嵌套表)

这里我表源代码的”从我的数据库恢复到另一张桌子后的试样:

<table id='users' class='tablesorter' width='100%' border='0'> 
    <thead> ... </thead> 
    <tbody> 
    <tr class="even"> 
     <td> ... </td> 
     <td> ... </td> 
     <td> 
     <table border="0" cellpadding="0" cellsapcing="0" width="907" 
      <tbody> 
      <tr class="even"> ... </tr> 
      <tr class="even"> ... </tr> 
      <tr class="even"> ... </tr> 
      </tbody> 
     </table> 
     <table border="0" cellpadding="0" cellsapcing="0" width="907" 
      <tbody> 
      <tr class="even"> ... </tr> 
      <tr class="even"> ... </tr> 
      <tr class="even"> ... </tr> 
      </tbody> 
     </table> 
     </td> 
     ... 
    </tr> 
    </tbody> 
</table> 

我的javascript:

$("#users").tablesorter({ 
    headers: { 
     0: { 
      sorter: false 
     }, 
     4: { 
      sorter: false 
     }, 
     5: { 
      sorter: false 
     }, 
     6: { 
      sorter: false 
     }, 
     7: { 
      sorter: false 
     }, 
     9: { 
      sorter: false 
     }, 
     10: { 
      sorter: false 
     }, 
     11: { 
      sorter: false 
     }, 
     12: { 
      sorter: false 
     }, 
     13: { 
      sorter: false 
     }, 
     14: { 
      sorter: false 
     }, 
     15: { 
      sorter: false 
     } 
    } 
}).bind("sortEnd",function() { 
$(this).find('tbody tr:odd').removeClass('odd even').addClass('odd'); 
$(this).find('tbody tr:even').removeClass('odd even').addClass('even'); 
}).trigger("sortEnd"); 

我的CSS:

.tablesorter tbody tr:nth-child(odd) { 
background-color: white; 
} 
.tablesorter tbody tr:nth-child(even) { 
background-color: lightgrey; 
} 

回答

1

它听起来像是使用原始版本的tablesorter存在的问题。嵌套表格没有正确隔离(demo)。

查看我的fork of tablesorter,它特别注意嵌套表格。这里是a demo

$(function() { 
    $('#main').tablesorter({ 
     theme: 'blue', 
     widgets: ['zebra'] 
    }); 
}); 
+0

谢谢,但在您的演示中,我需要的是,成绩列可排序,此列包含普通文本,并且在一个单元格中包含两个表格。在一个单元格中存在两个表涉及我的列的非排序,我的数据库中存在的标签自动变为,并且此列的排序停止工作:/ – user3584484

+0

我没有修改演示的时间,所以试试在你的网站上...使用'$('table')'而不是'$('#main')'初始化tablesorter。 – Mottie

+0

最后,问题不是嵌套表格,而是嵌套表格的其中一个单元格包含日期。我知道如果所有列总是包含一个日期,我可以使它工作,但在我的表中,内容是随机的,那么如何使日期适合使用tablesort? – user3584484