微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery表排序器-dd / mm / yyyy解析器

如何解决jQuery表排序器-dd / mm / yyyy解析器

| 经过四处搜寻,我似乎无法按英国日期格式(dd / mm / yyyy)对第一栏进行排序 有人愿意帮助我解决这个问题吗?当前的js是:
$(document).ready(function() 
{ 
    $(\"table.tablecontainer\").tablesorter({widgets: [\'zebra\']});

    $(\"#myTable\").tablesorter({ 
               sortList: [[0,0]],headers: {
           5:{
              sorter: false
           }
       }
    });
}); 
感谢所有帮助,因为这根本不是我可以精通的领域! 更新的代码
$(document).ready(function() 
{ 
    $(\"#myTable\").tablesorter({widgets: [\'zebra\']});
    $(\"#myTable\").tableSorter( {dateFormat: \"uk\"} );
    $(\"#myTable\").tablesorter({ 
    sortList: [[0,headers: {
    // assign the sixth column (we start counting zero)
     5:{
     // this is header 6 since the headers start at 0
        // disable it by setting the property sorter to false
     sorter: false
     },}});
}); 
    

解决方法

我个人使用来自tablesorter.com的Jquery tablesorter脚本 将dateFormat-属性设置为\“ uk \”。
    $(\"#myTable\").tablesorter({ 
        widgets: [\'zebra\'],dateFormat: \"uk\",sortList: [[0,0]],headers: { 5: { sorter: false}} 
     });
您使用不同的选项多次调用脚本,这会使性能不佳的库感到困惑。 仅使用上面设置的所有不同选项致电表分类器。 我没有检查斑马小部件,但其余部分的行为现在应该是这样。 祝您好运:-)     ,您需要为此定义一个解析器。就像是
// add parser through the tablesorter addParser method 
$.tablesorter.addParser({ 
    // set a unique id 
    id: \'uk-date\',is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    },format: function(s) { 
        var date = s.split(\'/\');
        return new Date(date[2],date[1],date[0]).getTime();
    },// set type,either numeric or text 
    type: \'numeric\' 
}); 
这可能可以做一些更好的格式检查。我建议在单独的脚本中为tablesorter插件定义解析器,以便您轻松升级。您可以在tablesorter脚本之后的
<script>
标记中引用解析器脚本。 使用就像
$(function() { 
    $(\"table\").tablesorter({ 
        headers: { 
            1: { 
                sorter:\'uk-date\' 
            } 
        } 
    }); 
});   
    ,这回避了这个问题,但是我可能只是配置textExtraction选项(请参见此处:http://tablesorter.com/docs/#Configuration) 您可以将一个可排序的日期放在一个隐藏的范围内(如下所示,class = \'sort_key \'),并设置以下内容:
textExtraction: function(node) {
  if($j(node).find(\'.sort_key\').is(\'span\') {
    return $j(node).find(\'.sort_key\').text();
  } else {
    return $j(node).text();
  }
}
    ,http://mottie.github.io/tablesorter/docs/ 设置日期格式。这是可用的选项。 (修改后的v2.0.23)。 \“ mmddyyyyy \”(默认) \“ ddmmyyyy \” \“ yyyymmdd \” 在以前的版本中,此选项设置为\“ us \”,\“ uk \”或\“ dd / mm / yy \”。对该选项进行了修改,使其更适合所需的日期格式。只能使用四位数年份! 排序器应设置为\“ shortDate \”,日期格式可以在\“ dateFormat \”选项中设置,也可以为\“ headers \”选项中的特定列设置。请参见演示页面以查看其工作原理。
$(function(){
  $(\"table\").tablesorter({

    dateFormat : \"mmddyyyy\",// default date format

    // or to change the format for specific columns,// add the dateFormat to the headers option:
    headers: {
      0: { sorter: \"shortDate\" },// \"shortDate\" with the default dateFormat above
      1: { sorter: \"shortDate\",dateFormat: \"ddmmyyyy\" },// day first format
      2: { sorter: \"shortDate\",dateFormat: \"yyyymmdd\" }  // year first format
    }

  });
}); 
可以通过添加按优先级设置的以下内容(它们都做相同的事情)来修改各个列(修改后的v2.3.1): jQuery数据data-dateFormat = \“ mmddyyyy \”。 元数据类= \“ {dateFormat:\'mmddyyyy \'} \”。这需要元数据插件。 标头选项标头:{0:{dateFormat:\'mmddyyyy \'}}。 标头类名称class = \“ dateFormat-mmddyyyyy \”。 总体dateFormat选项。 就我而言,
$(\"#myTable\").tablesorter({dateFormat: \"uk\"}) 
版本。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。