Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery tablesorter td colspan在车身内_Jquery_Sorting_Nested_Html Table_Tablesorter - Fatal编程技术网

Jquery tablesorter td colspan在车身内

Jquery tablesorter td colspan在车身内,jquery,sorting,nested,html-table,tablesorter,Jquery,Sorting,Nested,Html Table,Tablesorter,我正在尝试使用tablesorter插件对我的表进行排序,其中最后一个单元格跨越多个列 在生成列中,有一个内部表,其中包含多个单元格和隐藏行。当排序表头1对列1的响应、表头2对列2的响应和表头3对跨越列的响应时,textExtraction对跨越列进行排序。但是有更多的表头,它们应该在内部表上排序,而不是在下一列上排序 我在这里举了一个小例子: 为了简化它,这就是我试图(从小提琴中)得到的: “名称”标题对名称列(第0列)进行排序 “Phone”标题通过查看cell1类第一次出现的值对跨越列(第

我正在尝试使用tablesorter插件对我的表进行排序,其中最后一个单元格跨越多个列

在生成列中,有一个内部表,其中包含多个单元格和隐藏行。当排序表头1对列1的响应、表头2对列2的响应和表头3对跨越列的响应时,textExtraction对跨越列进行排序。但是有更多的表头,它们应该在内部表上排序,而不是在下一列上排序

我在这里举了一个小例子:

为了简化它,这就是我试图(从小提琴中)得到的:

“名称”标题对名称列(第0列)进行排序
“Phone”标题通过查看cell1类第一次出现的值对跨越列(第1列)进行排序

“Type”-标题通过查看第一次出现的cell2类的值对跨越列(第1列)进行排序

表叉排序器已更新为使用
textextextraction
函数(如果设置),而不是在
duplicateSpan
选项设置为
false
()-但此更改目前仅在存储库的主分支中可用,并将与版本2.25.8一起发布

因此,您可以(,使用):

注意:此方法使用
textextextraction
函数从第一个单元格1或单元格2获取数据,因此带有“home”的单元格忽略“club”和“office”内容。如果要包括该函数,请按如下所示修改该函数():


注2:演示中的
debug
选项为
true
,因此您可以查看控制台并查看这两个功能的差异。

当前,如果在
tbody
中遇到
colspan
,则tablesorter使用将该单元格的值设置为所有跨区单元格的相同值,或设置为空字符串。我需要更新函数,让它调用
textextextraction
函数。嘿,莫蒂,谢谢你的回复,它工作得很好。我尝试向表中添加一个额外的列(不在嵌套的列中),并认为如果将索引从0更改为1,它会起作用,但它只对第一个(ID)和第三个(列)进行排序,请参见。我可以在调试中看到,如果我添加ID列,则类型列不存在。“cell1”和“cell2”类名需要与它们所在的列匹配,因此将这些类分别更改为“cell2”和“cell3”-非常感谢。感谢您为tablesorter插件制作的优秀示例
$('table').tablesorter({
    textExtraction: {
        1: function(node){ return $(node).find('.cell1').eq(0).text(); },
        2: function(node){ return $(node).find('.cell2').eq(0).text(); }
    }
});
$('table').tablesorter({
  debug: true,
  duplicateSpan: false,
  textExtraction: function(node, table, cellIndex) {
    if (cellIndex > 0) {
      // this works because cell1 and cell2 match the table
      // column zero-based index
      return $(node).find('.cell' + cellIndex).eq(0).text(); 
    }
    return node.textContent;
  }
});
$('table').tablesorter({
  duplicateSpan: false,
  textExtraction: function(node, table, cellIndex) {
    if (cellIndex > 0) {
      // this works because cell1 and cell2 match the table
      // column zero-based index
      var txt = '';
      $(node).find('.cell' + cellIndex).each(function(){
        txt += this.textContent + ' ';
      });
      return txt;
    }
    return node.textContent;
  }
});