我正在尝试构建一个将Facebook Likes数量插入Div标签的功能。到目前为止,我有一个脚本可以从另一个Div标签(称为``entry'')中的Div标签获取URL,然后让.getJSON()方法检索每个条目的Facebook喜欢次数。不会将每个Facebook Likes的检索值插入到每个条目的Div标签中。请注意,我将代码简化为可以提醒每个Facebook Like值的代码。这是我到目前为止的内容:
<div class="entry">
<div class="fburl">https://graph.facebook.com/zombies</div>
<div class="facebook-likes"></div>
</div>
<div class="entry">
<div class="fburl">https://graph.facebook.com/starwars</div>
<div class="facebook-likes"></div>
</div>
这是我的jQuery:
$(document).ready(function(){
$(".entry").each(function() {
var fbURL = $(this).find(".fburl").html();
$.getJSON(fbURL, function(fbData) {
var fbArr = fbData['likes'];
alert(fbArr);
});
});
});
``所以我想做的是遍历每个条目,获取它的Open Graph URL,检索Likes值,然后将其插入适当的Div标记中,因此代码应呈现为:
<div class="entry">
<div class="fburl">https://graph.facebook.com/zombies</div>
<div class="facebook-likes">2,586 Likes</div>
</div>
<div class="entry">
<div class="fburl">https://graph.facebook.com/starwars</div>
<div class="facebook-likes">8,905,721 Likes</div>
</div>
最佳答案
$(document).ready(function() {
$('.entry').each(function() {
var $this = $(this),
fbURL = $this.children('.fburl').html();
$.getJSON(fbURL, function(fbData) {
$this.children('.facebook-likes').html(fbData['likes'] + ' Likes')
});
});
});
参见:http://api.jquery.com/children
演示:http://jsfiddle.net/9EALz/2/
注意:使用
children()
将比使用find()
效率更高,因为它将DOM遍历限制为一个级别(http://jsperf.com/find-vs-children/13)。通过$(this)
兑现jQuery对象var $this = $(this)
效率也更高,因为它可以防止不必要的选择器解释(http://jsperf.com/jquery-cache-vs-no-chace)。