javascript - 使用 tablesorter 对行进行排序

标签 javascript jquery tablesorter

http://jsfiddle.net/9sKwJ/66/

tr.spacer { height: 40px; }
$.tablesorter.addWidget({
    id: 'spacer',
    format: function(table) {
        var c = table.config,
        $t = $(table),
        $r = $t.find('tbody').find('tr'),
        i, l, last, col, rows, spacers = [];
        if (c.sortList && c.sortList[0]) {
            $t.find('tr.spacer').removeClass('spacer');
            col = c.sortList[0][0]; // first sorted column
            rows = table.config.cache.normalized;
            last = rows[0][col]; // text from first row
            l = rows.length;
            for (i=0; i < l; i++) {
                // if text from row doesn't match last row,
                // save it to add a spacer
                if (rows[i][col] !== last) {
                    spacers.push(i-1);
                    last = rows[i][col];
                }
            }
            // add spacer class to the appropriate rows
            for (i=0; i<spacers.length; i++){
                $r.eq(spacers[i]).addClass('spacer');
            }
        }
    }
});


$('table').tablesorter({
    widgets : ['spacer']
});
<table id="test">
  <thead>
    <tr>
      <th>Name</th>
      <th>Number</th>
      <th>Another Example</th>
    </tr>
  </thead>
<tbody>

    <tr>
  <td>Test4</td>
  <td>4</td>
  <td>Hello4</td>
  </tr>          

  <tr>
  <td colspan="3">Test4</td>
  </tr>

    <tr>
  <td>Test3</td>
  <td>3</td>
  <td>Hello3</td>
  </tr>          

  <tr>
  <td colspan="3">Test3</td>
  </tr>

    <tr>
  <td>Test2</td>
  <td>2</td>
  <td>Hello2</td>
  </tr>          

  <tr>
  <td colspan="3">Test2</td>
  </tr>

  <tr>
  <td>Test1</td>
  <td>1</td>
  <td>Hello1</td>
  </tr>          

  <tr>
  <td colspan="3">Test1</td>
  </tr>
</tbody>
</table>

如果您按第一列对它进行排序,这将按照我想要的方式进行排序,但其他两列不会保持我正在寻找的相同配对“tr”排序。

有什么帮助吗?

最佳答案

在每个重复行上使用 expand-child 类名:

<tr>
  <td>Test3</td>
  <td>3</td>
  <td>Hello3</td>
</tr>          

<tr class="expand-child">
  <td colspan="3">Test3</td>
</tr>

它由 cssChildRow 选项定义:

$('table').tablesorter({
    cssChildRow: "expand-child"
});​

这里是 a demo它在行动。

关于javascript - 使用 tablesorter 对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488569/

相关文章:

javascript - 在单独的工作表中将 HTML 表格导出到 Excel (.xls)

javascript - 找不到文件来编辑我下载的 Python 包的 css 内容

javascript - Bootstrap 模式删除滚动条

javascript - 使用 jQuery 或 css overflow hidden 的内容

javascript - Jquery tablesorter 插件试图禁用标题排序但它不工作

javascript - 在 node.js 中输出完整的错误对象

javascript - HTML 中两个或多个范围输入共享一个(相同)最大值

javascript - 表格排序器 : Mouseover not working after applying sorting on table

php - Tablesorter 2.17.7 CSS 不工作?

javascript - 无法读取未定义的属性 'attr'