【问题标题】:Using each() with JSONP results将 each() 与 JSONP 结果一起使用
【发布时间】:2013-01-28 02:49:54
【问题描述】:

我正在使用 themoviedb.org API,它提供 JSONP API,返回电影等数据。

我正在尝试创建一个表单,您可以搜索电影,它会根据查询返回 5 个最相关的电影标题。

目前我正在使用:

           success: function(parsed_json) {
               console.log(parsed_json);

               $(".search").append("<li data-id=" +parsed_json["results"]["0"]["id"]+ ">" + parsed_json["results"]["0"]["original_title"] + "</li>");
               $(".search").append("<li data-id=" +parsed_json["results"]["1"]["id"]+ ">" + parsed_json["results"]["1"]["original_title"] + "</li>");
               $(".search").append("<li data-id=" +parsed_json["results"]["2"]["id"]+ ">" + parsed_json["results"]["2"]["original_title"] + "</li>");
               $(".search").append("<li data-id=" +parsed_json["results"]["3"]["id"]+ ">" + parsed_json["results"]["3"]["original_title"] + "</li>");
               $(".search").append("<li data-id=" +parsed_json["results"]["4"]["id"]+ ">" + parsed_json["results"]["4"]["original_title"] + "</li>");
               $(".search").append("<li data-id=" +parsed_json["results"]["5"]["id"]+ ">" + parsed_json["results"]["5"]["original_title"] + "</li>");
           }

附加所有带有 data-id = 电影 ID 的电影标题。这似乎是很多编码,我想知道是否有一种方法可以使用 each() 来附加前 5 个相关的电影标题。

关于 JSONP API 的信息:http://help.themoviedb.org/kb/api/jsonp

工作 JSFiddle:http://jsfiddle.net/javascript/5ApuF/

编辑:

我试过了:

success: function(parsed_json) {
    var textToInsert = [];
    var i = 0;
    var length = parsed_json.length;
    for (var a = 0; a <length; a += 1) {
        textToInsert[i++]  = '<li>';
        textToInsert[i++] = parsed_json[a];
        textToInsert[i++] = '</li>' ;
     
    }
    $('.search').append(textToInsert.join(''));

}

【问题讨论】:

  • 你尝试了什么?你有什么问题?
  • 顺便说一句,最好的方法是使用模板引擎,例如 Knockout
  • @Slaks 我宁愿只使用 1 个库,例如 jQuery,而不是让它膨胀。至于我尝试过但没用的方法是:检查编辑

标签: jquery api jsonp each


【解决方案1】:

我相信这样的事情应该可以满足您的需求......

success: function(parsed_json) {
    console.log(parsed_json);
    if (k > 4) {
        return false;
    }
    $.each(parsed_json["results"], function(k, v) {
         $(".search").append("<li data-id=" +v["id"]+ ">" + v["original_title"] + "</li>");
    });
}

祝你好运!我编辑了这个,因为我忘了你只想要 5 个结果:)

--al

【讨论】:

    【解决方案2】:

    试试

    for (result in parsed_json["results"]) {
        $(".search").append("<li data-id=" +parsed_json["results"][result]["id"]+ ">" + parsed_json["results"][result]["original_title"] + "</li>");
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 2012-08-02
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2013-08-16
      • 2014-09-02
      相关资源
      最近更新 更多