【问题标题】:JQuery tablesorter, <table> in <table> (nested tables)JQuery tablesorter, <table> in <table> (嵌套表)
【发布时间】:2017-07-01 03:47:05
【问题描述】:

我有一个表格,里面填满了数据库中的数据。由于 jQuery tablesorter,这个表是可排序的。我的问题是主表的一个单元格包含另外两个表。所以主表上的排序不再起作用。如何仅在主表上强制排序?

这是从我的数据库中恢复另一个表后我的表的源代码示例:

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

【问题讨论】:

    标签: javascript html-table nested tablesorter


    【解决方案1】:

    这听起来像是原始版本的 tablesorter 存在的问题。嵌套表未正确隔离 (demo)。

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

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

    【讨论】:

    • 谢谢,但在您的演示中,我需要的是等级列是可排序的,并且该列包含普通文本,并且在一个单元格上包含两个表格。一个单元格上的两个表的存在涉及我的列的非排序,我的数据库中存在的 标记自动变为 并且排序停止在该列上工作:/
    • 我没有时间修改演示,所以在你的网站上试试吧...使用$('table') 而不是$('#main') 初始化tablesorter。
    • 最后,问题不在于嵌套表,而是嵌套表的一个单元格包含日期这一事实。我知道如果所有列总是包含一个日期,我可以让它工作,但在我的表格中,内容是随机的,那么我怎样才能使日期与 tablesort 一起正常工作?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签