Tablesorter:如何忽略单元格中的文本

时间:2011-08-11 12:54:15

标签: jquery

当我使用tablesorter时,当我在表格单元格中添加一些数字来表示数字时,我无法正确排序。 例如。 30 MB,50 MB等。

无论如何都要告诉排序忽略单元格中的文本,即。这个例子中的MB?

此外,关于内嵌样式和标签: 如何正确理清以下内容?

<td><span>upto</span> 50 <br /> MB</td>

考虑“upto”和“MB”文字以及<br />标记。

4 个答案:

答案 0 :(得分:4)

我发现在jQuery网站上托管的tablesorter代码的分叉/更新版本中解决了“问题”。 分叉版本在这里: http://mottie.github.com/tablesorter/docs/index.html

答案 1 :(得分:3)

尝试将textExtraction选项传递给tableSorter方法。

以下内容:

var extractData = function(node)  {      
    return $(node).text().replace(/[^0-9.]/g, ''); 
} 

$(document).ready(function()     {         
    $("#yourTable").tableSorter( {
        textExtraction: extractData
        } ); 
} ); 

DOC链接:http://tablesorter.com/docs/

检查示例@:http://tablesorter.com/docs/example-option-text-extraction.html

答案 2 :(得分:0)

找到了另一种方法: 更改代码如下:

<td>upto<br /><span>50</span>MB</td>

应用以下文本提取:

textExtraction: {
        3: function(node) {
               return $(node).find("span:last").html();
        }
    }

答案 3 :(得分:0)

正如其他答案所述,我正在使用tablesorter textExtraction feature

在处理具有复杂和简单列标记的表时,我发现这个排序属性解决方案很有用:

$(".tablesorter").tablesorter({
    textExtraction: function(node) { 
        // look for a 'sort' attribute in <td> element
        var sort = node.getAttribute('sort');
        if(sort){
            //use it for sorting if found
            return sort;
        }else{
            //default sorting behaviour if not found
            return node.innerHTML;
        }   
    }       
});