Groupon API for statement

时间:2012-10-01 15:07:47

标签: javascript json

我试图回应其交易部分中遇到的每笔交易的所有头衔。我猜测for语句是正确的一半,而且我是一些如何不循环print语句来运行所有标题。但我只是不确定如何?

我的代码:

$(document).ready(function() {
    $.ajax({
        url: 'https://api.groupon.com/v2/deals.json?client_id={accesstoken}&division_id=new-york',
        data: 'client_id='+ access_token + '&' + 'division_id'+ loc,
        dataType: 'jsonp',
        success: function (data) {
            items = data;
            // title = data.deals[0].shortAnnouncementTitle;
            console.log(items)
            handleResult(items)
            // handleResult(title)
        },
    });

    function handleResult(items) {
        for(var i=0; i<items.deals.length; i++) {
            var title = items.deals[i].shortAnnouncementTitle;
            s = "<h2 class='results'>" + title + "</h2>";
            console.log(title)
        }

        $("#result").html(s);
    } 

目前它循环播放并打印出列表中的最后一项,而在控制台中我看到每个标题。

1 个答案:

答案 0 :(得分:1)

这些应该都有效,你在每次迭代中都覆盖了s的值,你试图建立一个更大的字符串但是错过了加号:

    function handleResult(items) {
    var s = "";
    for(var i=0; i<items.deals.length; i++) {
        var title = items.deals[i].shortAnnouncementTitle;
        s += "<h2 class='results'>" + title + "</h2>";
        //or s = s+ ....   
        console.log(title)
    }

    $("#result").html(s);
} 

你也应该在使用之前使用var声明变量's',否则你将设置全局's'属性,或者沿着这些行设置某些东西,如果使用s,那么会产生有趣的伪像,否则也会使用var :-)

    function handleResult(items) {
    for(var i=0; i<items.deals.length; i++) {
        var title = items.deals[i].shortAnnouncementTitle;
        var s = $("<h2 class='results'></h2>").text(title);
        $("#result").append(s);
        console.log(title)
    }
} 

以上将是我的首选解决方案,因为它可以让您更好地控制每个元素并提供一些灵活性。我想我已经在上面正确地写了它。

希望有所帮助。 马特