2013-04-02 80 views
1

在Tumblr上,我有几个帖子,我试图使用.ajax从特定的数据。我正在使用.each来获取音频文章的数据。但我遇到的问题是它将返回所有帖子,而不仅仅是音频帖子。我甚至为每个特定的帖子ID指定了json路径。我知道我可能会设置完全错误,因为我不太习惯使用.ajax。每个帖子获取.ajax结果ID

$('.audio.post').each(function() { 
    var audiopostID = $(this).attr('id'); 
    var audioPath = '/api/read/json?id=' + audiopostID; 

    $.ajax({ 
     url: audioPath, 
     dataType: 'jsonp', 
     timeout: 5000, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
}); 

正如我所说,它返回所有职位,而不是具体岗位,我要去跟audioPath。单个json路径确实存在,看起来.ajax忽略了单个路径并抓住了所有东西。以下是前两个音频后期JSON路径:

+0

你肯定audiopostID填充?当我没有指定id的情况下运行它会返回所有结果。 – user1048676

+0

是的。如果我将它记录到控制台,它将返回每个音频文章的所有ID。 –

+0

我的意思是在它到达AJAX之前。做一个警报或将audioPath写入控制台,以确保您的URL看起来像您在问题中指定的那个。 – user1048676

回答

1

你从下面的代码拉动ID字段:

<article class="post text brick" id="post-46308156089" data-postID="46308156089" data-permalink="http://testrtheme.tumblr.com/post/46308156089/test"> 

这里的ID是:

post-46308156089 
基于

,你是URL看起来像:

/api/read/json?id=post-46308156089 

尝试和你的代码更改为以下:

$('.audio.post').each(function() { 
var fullaudiopostID = $(this).attr('id').split('-'); 
var audiopostID = fullaudiopostID[1]; 
var audioPath = '/api/read/json?id=' + audiopostID; 

$.ajax({ 
    url: audioPath, 
    dataType: 'jsonp', 
    timeout: 5000, 
    success: function(data) { 
     console.log(data); 
    } 
}); 
});