Javascript 忽略div元素的Tablesorter解析器

Javascript 忽略div元素的Tablesorter解析器,javascript,jquery,html,tablesorter,Javascript,Jquery,Html,Tablesorter,我在我的网页上有几个表,我使用tablesorter扩展来允许排序。除了一张桌子以外,一切都很好。此特定表包含一个数值,但也包含一个div元素。问题是,由于存在div,tablesorter将其视为文本,例如,“1000”的排序低于“999”,因为它只识别最初的1和9 我已经阅读了文档,并尝试基于它实现一个自定义解析器- 不幸的是,它不起作用。基本上就是我想要实现的-单元格总是包含一个数字,后跟“…”等。因此,我试图过滤掉首字母“前面的值。如果我理解正确,您只需要从format函数中返回pars

我在我的网页上有几个表,我使用tablesorter扩展来允许排序。除了一张桌子以外,一切都很好。此特定表包含一个数值,但也包含一个div元素。问题是,由于存在div,tablesorter将其视为文本,例如,“1000”的排序低于“999”,因为它只识别最初的1和9

我已经阅读了文档,并尝试基于它实现一个自定义解析器-


不幸的是,它不起作用。基本上就是我想要实现的-单元格总是包含一个数字,后跟“…”等。因此,我试图过滤掉首字母“前面的值。如果我理解正确,您只需要从format函数中返回parseInt(s)

parseInt()

format: function (s) {
    // format your data for normalization 
    return parseInt(s);
},
并将自定义分类器应用于列,如下所示:

$(function () {
    var sMap = {sorter:'main'};
    $("#rTable").tablesorter({
        headers: {
            2: sMap,
            3: sMap,
            4: sMap,
            5: sMap,
            6: sMap,
            7: sMap,
            8: sMap,
            9: sMap,
            10: sMap,
            11: sMap,
            12: sMap,
            13: sMap,
            14: sMap,
            15: sMap,
            16: sMap
        }
    });
});

您可以通过以下方式轻松完成:

$(function () {
    var sMap = {sorter:'main'};
    $("#rTable").tablesorter({
        headers: {
            2: sMap,
            3: sMap,
            4: sMap,
            5: sMap,
            6: sMap,
            7: sMap,
            8: sMap,
            9: sMap,
            10: sMap,
            11: sMap,
            12: sMap,
            13: sMap,
            14: sMap,
            15: sMap,
            16: sMap
        }
    });
});
 var myTextExtraction = function(node) { 
    return node.textContent.replace(/\s/g, "").replace(/(^\d+)(.+$)/i,'$1'); 
} 

$("#rTable").tablesorter({ 
    textExtraction: myTextExtraction
});