以下代码从XML文件中获取数据并输出div="item"
我已经转换了日期,而不是您在YYYYMMDD中获得的完整日期(例如20131216)
var date = new Date( $item.find('pubDate').text() );
var yyyymmdd = date.getFullYear() +''+ (date.getMonth()+1) +''+ date.getDate();
array += '<p>' + yyyymmdd + '</p>';
1。但是现在我需要对这些数据进行排序并将其存储在一个子数组中,以便只有最后30天存储在子数组中。
完整脚本:
jQuery(function(){
$.ajax({
url: 'http://www.sagittarius-digital.com/news.rss',
dataType: 'xml'
}).done(function(xml){
var items = $(xml).find('item').map(function(){
var $item = $(this);
var array = '<div class="item">';
array += '<a href="' + $item.find('link').text() + '">';
array += '<h2>' + $item.find('title').text() + '</h2>';
array += '<p>' + $item.find('description').text() + '</p>';
var date = new Date( $item.find('pubDate').text() );
var yyyymmdd = date.getFullYear() +''+ (date.getMonth()+1) +''+ date.getDate();
array += '<p>' + yyyymmdd + '</p>';
array += '<p>Category: ' + $item.find('category').text() + '</p>';
array += '</a>';
array += '</div>';
return array;
}).get();
$('div.item').append(items.join(' '));
}).fail(function(){
console.log('error', arguments)
})
})
2。然后我需要随机化该子数组的输出,以便最后X项(从最近30天)以随机顺序输出。这将确保数据“最近”,但不会以完美的时间顺序显示。
有没有人有任何想法?
答案 0 :(得分:0)
似乎最容易排除循环中30天以前的所有内容
jQuery(function () {
$.ajax({
url: 'http://www.sagittarius-digital.com/news.rss',
dataType: 'xml'
}).done(function (xml) {
var items = [];
$(xml).find('item').each(function () {
var $item = $(this);
var date = new Date($item.find('pubDate').text());
var date_30 = new Date().getTime() - (1000*60*60*24*30);
var yyyymmdd = date.getFullYear() + '' + (date.getMonth() + 1) + '' + date.getDate();
if ( date_30 < date.getTime() ) { // newer than 30 days
var array = '<div class="item">';
array += '<a href="' + $item.find('link').text() + '">';
array += '<h2>' + $item.find('title').text() + '</h2>';
array += '<p>' + $item.find('description').text() + '</p>';
array += '<p>' + yyyymmdd + '</p>';
array += '<p>Category: ' + $item.find('category').text() + '</p>';
array += '</a>';
array += '</div>';
items.push(array);
}
});
$('div.item').append(items.join(' '));
}).fail(function () {
console.log('error', arguments)
});
});
如果您仍需要对阵列进行随机播放,here's a solution for that