如果日期列,则禁用jquery / tablesorter标头

时间:2011-01-03 08:45:27

标签: jquery tablesorter

我正在为我的表使用jquery / tablesorter,其列是文本和数字的混合。一切都很好。接下来,我添加了一个新的日期列,现在标题已完全禁用。即,我无法对任何列进行排序。我启动了firebug,当页面加载时我看到一个错误:

s.replace不是以下代码中的函数

this.formatFloat = function (s) {
  var i = parseFloat(s.replace(/,/g, ''));
  return (isNaN(i)) ? 0 : i;
};

当我输入断点并查看s的值时,对于日期列,它是一些数字,如736283783,而对于所有其他数字,它是一个字符串,如“1”或“123”。我尝试了不同的日期格式,如“dd / mm / yy”,“dd-mm-yyyy”,“2011年1月1日”等,没有运气。

更新:上面的代码在jquery.tablesorter.js中。这不是我写的代码。

我的表格来源如下:

<table id="historyTable" class="fullwidth sortable">
        <thead>
            <tr>
                <th>Status</th>
                <th>Start</th>
                <th>End</th>
                <th>Type</th>
                <th>Keyword</th>
             </tr>
        </thead>
             <tr>
                <td>Active</td>
                <td>2008-09-18</td>
                <td></td>
                <td>Info</td>
                <td>TF</td>
             </tr>
             <tr>
                <td>Inactive</td>
                <td>2010-09-18</td>
                <td></td>
                <td>Info</td>
                <td>ZX</td>
             </tr>
       </table>

我的JS代码只是调用这样的tablesorter:     jQuery的( “table.sortable”)的tablesorter(); 我做错了什么?

1 个答案:

答案 0 :(得分:2)

试试这个:

this.formatFloat = function (s) {
  // add .toString() to convert it to a string
  var i = parseFloat(s.toString().replace(/,/g, ''));
  return (isNaN(i)) ? 0 : i;
};

也许它不起作用,因为s不是string

更新; 所以像这样:

this.formatFloat = function (s) {
  // add .toString() to convert it to a string<br/>
  var strDate = new Date(s.toString().replace(/,/g, ''));   
  var i = parseFloat(strDate);

  return (isNaN(i)) ? 0 : i;
};