我有非常相似,這個問題一個問題:jQuery table sort排序使用jQuery表基於日期值
當單擊日期頭,我想根據日期錶行進行排序,不是基於在文本上。
我基於我的代碼在這個jsFiddle http://jsfiddle.net/gFzCk/這是上述問題的答案之一,它確實排序,但它將日期視爲普通文本,而不是日期。
通常情況下,我可以修改原始代碼以適應我的需要,但是這段代碼只是略微超出了我的意思。
這裏是我的jsfiddle http://jsfiddle.net/S6dM6/
HTML
<table>
<tr>
<th id="dateHeader">Date</th>
<th>Phone #</th>
<th id="city_header">City</th>
<th>Speciality</th>
</tr>
<tr>
<td>01/02/2013</td>
<td>00001111</td>
<td>Amsterdam</td>
<td>GGG</td>
</tr>
<tr>
<td>24/02/2013</td>
<td>55544444</td>
<td>London</td>
<td>MMM</td>
</tr>
<tr>
<td>28/02/2013</td>
<td>33332222</td>
<td>France</td>
<td>RRR</td>
</tr>
<tr>
<td>13/02/2013</td>
<td>88884444</td>
<td>Auckland</td>
<td>AA</td>
</tr>
<tr>
<td>04/02/2013</td>
<td>11115555</td>
<td>New York</td>
<td>BBB</td>
</tr>
</table>
JS
var table = $('table');
$('#dateHeader')
.wrapInner('<span title="sort this column"/>')
.each(function(){
var th = $(this),
thIndex = th.index(),
inverse = false;
th.click(function(){
table.find('td').filter(function(){
return $(this).index() === thIndex;
}).sortElements(function(a, b){
return $.text([a]) > $.text([b]) ?
inverse ? -1 : 1
: inverse ? 1 : -1;
}, function(){
// parentNode is the element we want to move
return this.parentNode;
});
inverse = !inverse;
});
});
而且這個js文件中引用: https://raw.github.com/padolsey/jQuery-Plugins/master/sortElements/jquery.sortElements.js
以防萬一你要建議某種桌子排序插件,請注意,我的最終結果不會被排序時,單擊標題,排序功能將從我的JavaScript中的各個地方被調用,我只是使用這個點擊的例子作爲一個簡單的起點,以獲得該概念的工作和作爲一個簡單的方法來提出這個問題。
您正在尋找'Date.parse',https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/日期/解析,但是,使用'dd/MM/yyyy'格式,你需要做一些進一步的處理,我相信'Date.parse'預計'MM/dd/yy(yy)' – BLSully