2012-05-10 3 views
0
내가 특정 해시 태그가 포함 된 트윗의 간단한 목록을 검색하려면 다음 코드를 사용하고

: 당신은 내가 목록을 새로 고치려고 노력하고 있어요 볼 수 있듯이새로 고침 JSON

$(document).ready(function tweetList() { 
$.getJSON(
    'http://search.twitter.com/search.json?callback=?&rpp=20&q=web', 
    function(data) { 
     $.each(data, function(i, tweets) { 
      for (var num = 0, len = tweets.length; num < len; num++) { 
       if (tweets[num].text !== undefined) { 
        var tim = new Date(tweets[num].created_at); 
        var author = tweets[num].from_user; 
        $('ul#tweets').append('<li><b>' + tim.toString().substring(0, 24) + ':</b> ' + tweets[num].text + author + '</li>'); 
       } 
      } 
     }); 
     setInterval(tweetList, 5000); 
    } 
); 
});</script> 

<ul id="tweets"></ul> 

, 그러나 문제는에 의해 그 기능을 새로 고치면 목록은 새로 고쳐진 데이터로 계속 증가합니다.

나는 .append를 사용하고 있기 때문에 이것을 알고 있습니다. 그러나 .html을 사용하면 트윗의 전체 목록이 채워지지 않습니다.

이 문제를 해결할 수 있습니까? 감사합니다. .

답변

1

새 데이터를 삽입하기 전에 이전 데이터를 삭제해야합니다.

쓰기 $.each하기 전에 :

$('ul#tweets').html(''); 
+0

위대한 당신을 감사합니다! – magicPenguin

1

난 당신이 오래된 트윗을 제거 할 추측하고있어, 전부는 아니지만 그들 중. :

$('ul#tweets').html('') 

당신을 갱신하기 전에 기존의 모든 트윗을 제거하지만, 이것은 당신이 (numToKeep에 의해 설정) 트윗 임의의 수를 유지하게됩니다;

var numToKeep=10; 
var currSize = $('ul#tweets li').size(); 
var extras = numToKeep - currSize; 
$('ul#tweets li').each(function(count,el){ 
    if (count < numToKeep) { 
     $(el).remove(); 
    } 
}); 

카운트가 0 기준이므로 오래된 트윗을 제거해야합니다.

1

사용 jQuery의 empty()

$('#tweets').empty(); 
$.each(data, function(i, tweets) {