从JSON函数中的回调中返回一个值

时间:2015-04-12 14:51:18

标签: javascript jquery json

我使用iTunes API收集信息。为了使我的代码尽可能地模块化,我的代码设置类似于提交的here。添加到此代码中我希望使用click事件将JSON中的信息插入到DOM中。问题是,尽管能够成功检索JSON,但只要触发click事件,我就会获得undefined。为什么会这样?更重要的是,有更好的方法来创建JSON获取请求的函数,那么我现在拥有的是什么?



$(function() {
  $("button").on("click", function() {
    var artistName = iTunesSearch(albumInfo);
    $(".artist-name").text(artistName);
  });
  
  function iTunesSearch(callback) {
    $.getJSON("http://itunes.apple.com/search?term=College Dropout&entity=album&callback=?", function(data) {
      var result = data['results'][0];
      callback(result);
    });
  }
  
  function albumInfo(data) {
    console.log(data["artistName"]); // Successfully logs info just doesn't return the data 
    return data["artistName"];
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Generate Info</button>
<p><b>Artist Name:</b> <span class="artist-name"></span></p>
&#13;
&#13;
&#13;

0 个答案:

没有答案