0
我有一個複選框的形式,讓用戶選擇一個或多個Twitter時間軸來顯示。目前,時間線分批顯示(即第一個時間線的所有推文,第二個時間線的所有推文,以此類推)。我想在輸出之前將所收集的所有推文分類到單個年表中。如何在輸出到屏幕之前按時間順序排序多個twitter時間軸?
這裏是一個JS提琴:http://jsfiddle.net/brianeoneill/z9cuP/2/
$('input[type=submit]').on('click', function(e){
// prevent default behavior of the submit button
e.preventDefault();
// empty the div with ID of tweets
$('#tweets').empty();
// perform a function on all of the checked boxes
$(':checkbox:checked').each(function(){
var twitterID = $(this).attr('data');
// use the "data" attribute to build the query string for getJSON
$.getJSON('http://api.twitter.com/1/statuses/user_timeline/'+twitterID+'.json?callback=?', null, function(data){
// create an empty ul
var tweetList = $('<ul id="tweets-list">');
// for each JSON object returned, parse it into an li
$.each(data, function(i, tweet){
var item = $('<li class="'+i+'">');
var name = $('<h2>').text(tweet.user.name);
var date = $('<small>').text(tweet.created_at);
var img = $('<img>').attr('src', tweet.user.profile_image_url);
var msg = $('<p>').text(tweet.text);
item.append(img,name,date,msg);
// add the li to the empty tweetList ul
tweetList.append(item);
}); // end of JSON parse function
// SORT BEFORE SENDING TO DOM
$('#tweets').append(tweetList);
我試着創造裏的數組,然後通過Twitter的時間戳對它們進行排序,但我總是一個空數組結束。很顯然,我錯過了一些東西。
在此先感謝!
好的。在我的$ .each函數中,我添加了:var item = $('li class =「'+ this.id +'」>');這工作正常。所以現在我只需要通過ID對li進行排序。輸出到屏幕之前可以這樣做嗎?或輸出,然後使用jQuery進行排序? –
我會採取一種稍微不同的方法:將所有Tweets存儲在一個'Array'中,然後使用'Array.sort'和一個用戶函數按Tweet ID進行排序,然後遍歷該數組並呈現內容。在這裏你可以找到關於如何使用'Array.sort'和比較函數的文檔:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort – marekful
謝謝,Marcell!我真的很感謝你的幫助 –