Jquery 日历中每个URL对Facebook评论的JSON调用计数
我有一个jQuery日历,每天都链接到一个动态页面,上面有Facebook评论插件。现在,我可以通过调用Facebook的API获得评论数,如下所示:Jquery 日历中每个URL对Facebook评论的JSON调用计数,jquery,facebook,Jquery,Facebook,我有一个jQuery日历,每天都链接到一个动态页面,上面有Facebook评论插件。现在,我可以通过调用Facebook的API获得评论数,如下所示: $(".comm").each(function(){ var root = "https://graph.facebook.com/?ids="; var ids = "http://root.toUrl.com/"; var callback = "&callback=?";
$(".comm").each(function(){
var root = "https://graph.facebook.com/?ids=";
var ids = "http://root.toUrl.com/";
var callback = "&callback=?";
var date = $(this).attr('href');
var fecha = root + ids + date + callback;
$.getJSON(fecha, function(data){
for(comments_num in data){
var user = data[comments_num];
$('.iframecont').append(user.comments);
console.log(user.comments);
}
});
});
Facebook允许您通过Graph API一次只获取一个URL的评论数。因此,对于包含30天的日历,您必须调用30个URL才能获得每个URL响应。例如,要检索2011年5月5日的评论数量,URL应为?。我每天都要打相应的电话,解码答案并将结果附加到day div中的p中
数据返回:
{
"http://example.com/": {
"id": "http://example.com/",
"shares": 72603,
"comments": 14483
}
}
User.comments在本例中为14483
这段代码正确地检索了数据,但现在每天“.iframecont”都会在一行中显示所有json响应,如下所示:6221222222
如何将每个回复分发给相应的部门,以便在正确的日期分配正确数量的评论
提前感谢。假设使用以下html
<div> <!-- div n-1 -->
<a href="someurl" class="comm">some text</a>
<p class="iframecont"></p>
</div>
<div> <!-- div n -->
<a href="someurl" class="comm">some text</a>
<p class="iframecont"></p>
</div>
<div> <!-- div n+1 -->
<a href="someurl" class="comm">some text</a>
<p class="iframecont"></p>
</div>
注意事项$这只是另一个javascript变量。我们在$前面加前缀,表示它实际上是一个jquery对象。这是正常的惯例。我们缓存对正在进行api调用的元素的引用。现在,当执行回调函数时,使用缓存的$that,我们会找到相应的段落标记。在我的示例中,将创建并相应地修改遍历 问题是user.comments将返回所有30个结果,并将它们全部附加到该ID。。。我需要一种方法来调用每个JSON对象并将结果附加到它的源调用方…您是说user.comments包含每天的注释数,并且它们之间没有空格、逗号或任何分隔符分隔吗?实际上,你能用变量数据和user.comments实际包含的内容等细节更新你的问题吗。这将帮助大家更好地理解您的问题。对不起,为了更好地解释,我对问题进行了一些更新。。。User.comments只包含一天的评论数,这是Facebook提供回复的方式:每次与URL相关的评论。。。
$(".comm").each(function(){
var root = "https://graph.facebook.com/?ids=";
var ids = "http://root.toUrl.com/";
var callback = "&callback=?";
var date = $(this).attr('href');
// important. read http://bonsaiden.github.com/JavaScript-Garden/#function.this
var $that = $(this);
var fecha = root + ids + date + callback;
$.getJSON(fecha, function(data){
// why is this for loop needed??
for(comments_num in data){
var user = data[comments_num];
console.log(user.comments);
$that.parent().children("p.iframecont").append("num_of_comments");
// OR you can use this
// $that.siblings("p.iframecont").append("num_of_comments");
// what to use will be decided by the exact structure of your html.
// check out http://api.jquery.com/category/traversing/
// in my example, either method will work
}
});
});