我正在尝试构建一个将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)。

09-25 20:30