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))); }); });
超链接,下面
答
你有几个问题在这里:你的附加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
你可以看到它运行在这里:http://jsfiddle.net/jp555soul/BUuUE/ – user580801 2011-01-21 03:58:13