如何在 textSorter 中对隐藏或数据属性值进行排序

问题描述

我在表中有一个“姓名”列,其中包含一个人的全名(即名字+姓氏)。目标是先根据人的姓氏对列进行排序,然后是名字。我最初对 textsorter 函数的天真方法

function (a,b){
    const aSplit = a.split(' ');
    const bSplit = b.split(' ');
    const aReverse = aSplit[1] + aSplit[0];
    const bReverse = bSplit[1] + bSplit[0];
    return aReverse.localeCompare(bReverse);
}

不幸的是,我必须排序的一些名字中有多余的空格,可能在名字或姓氏字段中。所以我必须在我的排序中支持这一点。

我目前仅使用组合的名字+姓氏字符串进行显示和排序,但我可以访问单独的名称字符串以及预格式化的 lastname,firstname 版本。我想将其中任何一个附加到 <th> 标签作为数据属性或类似的东西,并使用它而不是实际值进行排序,但我不确定如何从内部访问这些属性textsorter 函数

解决方法

也许试试这个 - 当你构建表格 HTML 时,将姓氏 + 名字添加到单元格的 data-text 属性中。 Tablesorter 将自动在单元格内的实际文本上使用该属性。请参阅 textAttribute option 以允许更改该属性名称。