【发布时间】:2013-10-10 21:01:15
【问题描述】:
我是 javascript/jQuery 的新手,我正在尝试一些雄心勃勃的东西来提升我的技能水平。我发现了一些有帮助但被卡住的 sn-ps。
我有一堆格式如下的日期:dd-month-yyyy(2013 年 10 月 10 日)。据我了解,这在某种程度上是一种非常规的日期格式。所以我要做的是将日期解析为正常格式,然后使用 jQuery tinysort 插件(我认为我使用不正确)排列父 div。
我在这里做了一个 jsfiddle:http://jsfiddle.net/8BYDZ/
或者这是我的代码:
<div id="date-sort">
<div class="date-content">
<p>Some Content</p>
<p class="date-sort">10-Oct-2013</p>
<hr />
</div>
<div class="date-content">
<p>Some Content</p>
<p class="date-sort">12-Oct-2013</p>
<hr />
</div>
<div class="date-content">
<p>Some Content</p>
<p class="date-sort">2-Sep-2013</p>
<hr />
</div>
<div class="date-content">
<p>Some Content</p>
<p class="date-sort">22-Jun-2013</p>
<hr />
</div>
<div class="date-content">
<p>Some Content</p>
<p class="date-sort">1-May-2013</p>
<hr />
</div>
</div>
$(document).ready(function(){
function customParse(str) {
var months = ['Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec'],
n = months.length, re = /(\d{2})-([a-z]{3})-(\d{4})/i, matches;
while(n--) { months[months[n]]=n; } // map month names to their index :)
matches = str.match(re); // extract date parts from string
return new Date(matches[3], months[matches[2]], matches[1]);
}
var array = [];
var elements = $('.date-sort');
for(var i = 0; i < elements.length; i++) {
var current = elements[i];
if(current.children.length === 0 && current.textContent.replace(/ |\n/g,'') !== '') {
// Check the element has no children && that it is not empty
customParse(current.textContent);
array.push(current.textContent);
}
}
$('div#date-sort>.date-content>.date-sort').tsort();
});
感谢您提供任何帮助、见解或意见。
【问题讨论】:
-
您需要将您的问题修改为更具体的内容,而不是寻求洞察力等。
-
除了您可以在下面的 Kavun 的回答中找到已修复的错误之外,您还会遇到 textContent 属性的问题:IE
标签: javascript jquery parsing sorting date