사용자가 하나 이상의 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);
내가 트위터 타임 스탬프를 정렬 한 후 리튬의 배열을 생성하고 시도했지만, 난 항상 하늘의 배열로 끝날 것입니다. 그래서 명확하게 나는 뭔가를 놓치고있다.
미리 감사드립니다.
확인. 내 $ .each 함수에 다음을 추가했습니다. var item = $ ('li class = "'+ this.id + '">'); 괜찮아. 이제 ID별로 ID를 정렬해야합니다. 스크린 출력 전에 출력 할 수 있습니까? 또는 출력 및 다음 jQuery 정렬 할? –
나는 약간 다른 접근법을 취할 것입니다 : 모든 짹짹을'Array'에 저장 한 다음 사용자 함수로'Array.sort'를 사용하여 짹짹 ID로 정렬 한 다음 그 배열을 반복하고 내용을 렌더링하십시오. 여기에 비교 함수로'Array.sort'를 사용하는 방법에 관한 문서가 있습니다 : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort – marekful
감사합니다, Marcell! 난 정말 당신의 도움을 주셔서 감사합니다 –