jQuery tablesorter没有正确排序数字

Fon*_*ons 24 jquery tablesorter

我一直在努力让jQuery tablesorter在我的表列中正确排序数字.

我正在使用这两个脚本的当前最新版本.

表格很好,但排序数字不正常.

当我对数字列进行排序时,它给出了以下结果:

8 7 4 32 31 3等..

你期望的地方:32 31 8等...

我读了一些关于添加额外的javascript代码的评论,但我找不到任何好的javascript示例.

我现在使用的jQuery如下:

$(document).ready(function()
    {
      $("#table1")
       .tablesorter(
          {
            sortList: [[0,0]],
            widthFixed: true,
            widgets: ['zebra']
          } )
    }
);
Run Code Online (Sandbox Code Playgroud)

这是我的HTML:

<table id="table1" class=tablesorter>
    <thead>
        <tr>
            <th width=65>Name</th>
            <th width=40>Count</th>
        </tr>
     </thead>
     <tbody>
         <tr><td>Name_1</td><td>32</td></tr>
         <tr><td>Name_2</td><td>12</td></tr>
         <tr><td>Name_3</td><td>11</td></tr>
         <tr><td>name_4</td><td>14</td></tr>
         <tr><td>Name_5</td><td>7</td></tr>
         <tr><td>Name_6</td><td>3</td></tr>
         <tr><td>Name_7</td><td>32</td></tr>
         <tr><td>Name_8</td><td>31</td></tr>
         <tr><td>Name_9</td><td>35</td></tr>
      </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

Dav*_*ave 28

希望如果他们找到这篇文章,这将有助于他们,在tablesorter中你现在可以简单地使用.

$(".table").tablesorter({
     headers: {
         5: { sorter: 'digit' } // column number, type
     }
 });
Run Code Online (Sandbox Code Playgroud)

  • 注意到人们在这些年后看到这一点,列从0开始. (5认同)
  • 你错过了"标题"数组的结束大括号...让我修复:) (3认同)

Fon*_*ons 26

<th width=110 class=\"{sorter: 'digit'}\">Count</th>
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题.告诉javascript将值作为数字处理,使得排序工作正确.仍然有点傻,在脚本中没有检查数字值是数字.但我想最终有更高的目的.

谢谢大家的时间和帮助

/冯斯希

  • 对于尝试此操作的任何人都只需注意 - 您还需要在页面中包含jquery.metadata.js文件以引用这样的内联属性. (12认同)

Jef*_*eil 5

对于其他人(不是我)来说,这可能是显而易见的,但要使用jQuery元数据插件,需要使用{sorter:'digit'}元数据.