javascript - tablesorter() 用于 dd-MMM-yyyy 格式的 jQuery 函数

标签 javascript jquery tablesorter

这是我的 HTML 代码。

此代码不适用于日期格式,而是按字符串格式排序。

我还提到了几篇类似jquery tablesorter sort date dd mmm yyyy中的文章.

但是对于这种格式它不起作用。

我正在使用正则表达式,例如

^(([0-9])|([0-2][0-9])|([3][0-1]))\-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\-\d{4}$

仍然无法工作。请帮助我

<html>
<head><title>

</title><link href="themes/blue/style.css" rel="stylesheet" /><link     href="themes/green/style.css" rel="stylesheet" />
<script src="jQuery/jquery-1.9.0.min.js" type="text/javascript"></script>

<script src="jQuery/jquery.tablesorter.js" type="text/javascript"></script>
<script src="jQuery/TableSorter.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#GrdViewEmployee").tablesorter({ 
             sortList: [[0, 0], [2, 1]], 
             widgets:'zebra'
        });
    });
</script>
</head>
<body class="tablesorterBlue">
<form method="post" action="WebForm1.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="fauQ7GKDqTon5mt7NHJnOCzVzfTVHWHj+gG3j+CA8mTf4JJVPho0PBzFatn/hz/0xu7X0+jfUVQHlCgPQh5CNnoHCyzZOnTqgr7nSstUfCj5JlrZkhV7468h3Vx1e7Er" />
</div>

    <div>
<table cellspacing="0" rules="all" class="tablesorterBlue" border="1" id="GrdViewEmployee" style="border-collapse:collapse;">
    <thead>
        <tr>
            <th scope="col">empId</th><th scope="col">empName</th><th scope="col">empEMail</th><th scope="col">empPhone</th>
        </tr>
    </thead><tbody>
        <tr>
            <td>1</td><td>rameshwar</td><td>ram@hcl.com</td><td>2-Aug-2013</td>
        </tr><tr>
            <td>2</td><td>shrivatsav</td><td>ggtgh@shri.com</td><td>27-Aug-2013</td>
        </tr><tr>
            <td>3</td><td>ganga</td><td>karna@kulla.com</td><td>14-Jan-2013</td>
        </tr><tr>
            <td>4</td><td>krishna</td><td>krish@krish.com</td><td>13-Jan-2014</td>
        </tr><tr>
            <td>5</td><td>mahesh</td><td>hfgsdhjf@jdfsgjd</td><td>30-Nov-2013</td>
        </tr><tr>
            <td>6</td><td>Shridhar</td><td>shri@shri.com</td><td>1-Dec-2013</td>
        </tr>
    </tbody><tfoot>

    </tfoot>
</table>
</div>
</form>
</body>
</html>

最佳答案

您可以添加自己的解析器:

monthDict = {
    'Jan': '01','Feb': '02','Mar': '03',
    'Apr': '04','May': '05','Jun': '06',
    'Jul': '07','Aug': '08','Sep': '09',
    'Oct': '10','Nov': '11','Dec': '12'
}
$.tablesorter.addParser({ 
    id: 'mydate', 
    is: function(s) {return false}, 
    format: function(s) { 
        var date = s.split('-');
        var date[0] = (date[0].length == 1) ? '0' + date[0] : date[0];
        return date[2] + monthDict[date[1]] + date[0];
    }, 
    type: 'numeric' 
}); 
$("#GrdViewEmployee").tablesorter({
    sortList: [[0, 0], [2, 1]], 
    widgets: 'zebra',
    headers: {3: {sorter:'mydate'}} 
}); 

参见working jsfiddle .

关于javascript - tablesorter() 用于 dd-MMM-yyyy 格式的 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678127/

相关文章:

javascript - Jquery 在尝试操作 dom 时返回 [object object]

jquery - Tablesorter - 空单元格上的过滤功能

javascript - JQuery 和 IE 的性能极度下降

javascript - CSS:文本溢出:带有 reactJS 和 IE 的省略号

来自 Knockout.contextmenu 的 Javascript 函数调用

javascript - JQuery 表排序器不适用于日期范围字符串

javascript - Tablesorter 子行始终为每个搜索过滤器显示

javascript - History.js 如何防止双击返回重新加载的页面?

javascript - 如何使用 Google Cloud Function 查询现有的子对象并循环对象以检测它是否存在于 Firebase 中?

javascript - 页面更改后 jQuery Mobile 1.3 面板不工作