Jquery Twitter解析Json

问题描述:

我有这个问题,一切工作或多或少,但它给我太多的结果。Jquery Twitter解析Json

有什么想法?

 
var url = "search.twitter.com/search.json?q=%23ps3&rpp=15&from=mmgn&lang=en&callback=?"; 
$.getJSON(url, function(data) { 
    $.each(data.results, function(i, item) { 
     var tweet = item.text; 
     var combinedRegex = /[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+|[@]+[A-Za-z0-9-_]+|[#]+[A-Za-z0-9-_]+/g, 
      container = $('#tweet-container'); 
     var result, prevLastIndex = 0; 
     combinedRegex.lastIndex = 0; 
     while ((result = combinedRegex.exec(tweet))) { 
      $('').appendTo('#tweet-container'); 
      $('').html(tweet.slice(prevLastIndex, result.index)).appendTo('.tweet'); 
      if (result[0].slice(0, 1) == "@") { 
       $('').attr('href', 'http://twitter.com/' + encodeURIComponent(result[0].slice(1))).html(result[0]).appendTo(".tweet"); 
      } else if (result[0].slice(0, 1) == "#") { 
       $('').attr('href', 'http://search.twitter.com/search?q=%23' + encodeURIComponent(result[0].slice(1))).html(result[0]).appendTo('.tweet'); 
      } else { 
       $('').attr('href', result[0]).html(result[0]).appendTo(".tweet"); 
      } 
      prevLastIndex = combinedRegex.lastIndex; 
     } 
     $('').append($('').html(tweet.slice(prevLastIndex))); 
    }); 
}); 

超链接,下面

+0

你可以看到它运行在这里:http://jsfiddle.net/jp555soul/BUuUE/ – user580801 2011-01-21 03:58:13

你有几个问题在这里:你的附加li元素并插入你的“第一” /“最后” span元素。

1)您正在调用.appendTo(“。tweet”),它将选择带有tweet类的所有元素。 而是为li元素创建一个变量,然后将数据附加到该变量变量,例如。

var $li = $('<li class="tweet" />'); 
$li.appendTo('#tweet-container'); 
... 
$('whatever').appendTo($li); 

2)在你的span元素上,你也会追加到所有.tweet元素(如上)。看来您只想将span元素添加到列表中的第一个和最后一个项目。如果是这样的话,我建议等到循环完成,然后缠绕第一和最后一个元素,如:

$('li',container).first().wrapInner('<span class="first"/>').end().last().wrapInner('<span class="last"/>'); 

这里的changed code

你也可以让你的jQuery更高效一些,但这超出了你的问题的范围。

+0

感谢我得到它的工作,这是我的结果:http://jsfiddle.net/jp555soul/BUuUE/3/ – user580801 2011-01-21 23:15:49