0

我正在使用以下代码来检索包含某个哈希标签的简单推文列表:

$(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 时,不会填充整个推文列表。

有可能解决这个问题吗?谢谢。

4

3 回答 3

1

在插入新数据之前,您需要删除以前的数据。

写之前$.each

$('ul#tweets').html('');
于 2012-05-10T16:55:51.100 回答
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();
   }
});

由于 count 是基于 0 的,这应该删除旧的推文。

于 2012-05-10T17:07:55.900 回答
1

使用 jQuery 的empty()

$('#tweets').empty();
$.each(data, function(i, tweets) {
于 2012-05-10T17:08:59.377 回答