Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将结果列表中的项应用于当前对象的父Div标记?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何将结果列表中的项应用于当前对象的父Div标记?

Javascript 如何将结果列表中的项应用于当前对象的父Div标记?,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试构建一个函数,将Facebook喜欢的数量插入Div标签。到目前为止,我有一个脚本,可以从另一个名为“entry”的Div标记中的Div标记获取URL,然后使用.getJSON()方法检索每个条目的Facebook喜欢次数。但是,我无法获取Facebook喜欢插入每个条目的Div标记中的每个检索值。请注意,我简化了我的代码,以提醒每个类似Facebook的值。这就是我到目前为止所做的: <div class="entry"> <div class="fburl"&

我正在尝试构建一个函数,将Facebook喜欢的数量插入Div标签。到目前为止,我有一个脚本,可以从另一个名为“entry”的Div标记中的Div标记获取URL,然后使用.getJSON()方法检索每个条目的Facebook喜欢次数。但是,我无法获取Facebook喜欢插入每个条目的Div标记中的每个检索值。请注意,我简化了我的代码,以提醒每个类似Facebook的值。这就是我到目前为止所做的:

<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>
​因此,我尝试迭代每个条目,获取它的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>

https://graph.facebook.com/zombies
2586喜欢
https://graph.facebook.com/starwars
8905721喜欢
​ ​

请参见:

演示:

注意:使用
children()
要比使用
find()
稍微有效一些,因为它将DOM遍历限制在单个级别()。通过
var$this=$(this)
兑现jQuery对象
$(this)
的效率也稍高一些,因为它可以防止不必要的选择器解释()。

您可能需要这样做

$(document).ready(function(){
    $(".entry").each(function() {
        var entry=$(this), fbURL=$(".fburl", entry).html(),
        el=$('.facebook-likes', entry);
        $.getJSON(fbURL, function(fbData) {
           el.html(numberWithCommas(fbData['likes'])+" Likes");
        });
    });
});​
千位分隔符函数

更新: 或者,您可以使用(使用数据属性),而无需为
fburl
添加额外的div,即

<div class="entry">
    <div data-fburl="https://graph.facebook.com/zombies" class="facebook-likes"></div>
</div>

谢谢,我不知道用这种方式缓存$。我喜欢这个代码,因为它很简单。我不知道为什么我自己不能想出这个,似乎我已经尝试过这个组合,但这可能是因为我是如何使用.find()的,也可能是因为我之前使用了fbData.likes。谢谢,我喜欢使用数据fburl,所以我会将它合并到coderabbi编写的内容中。
$(document).ready(function(){
    $(".entry").each(function() {
        var entry=$(this), fbURL=$(".fburl", entry).html(),
        el=$('.facebook-likes', entry);
        $.getJSON(fbURL, function(fbData) {
           el.html(numberWithCommas(fbData['likes'])+" Likes");
        });
    });
});​
function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
<div class="entry">
    <div data-fburl="https://graph.facebook.com/zombies" class="facebook-likes"></div>
</div>
$(".entry").each(function() {
    var entry=$(this), fbURL = $(".facebook-likes", entry).attr('data-fburl'),
    el=$('.facebook-likes', entry);
    $.getJSON(fbURL, function(fbData) {
        el.html(numberWithCommas(fbData['likes'])+" Likes");
    });
});