将项目存储在数组中,稍后再使用它们

时间:2012-11-30 08:42:21

标签: javascript jquery ajax arrays json

我有代码,从服务器获取json文件,然后在页面上呈现一些元素。在此代码中,我还跳过具有关键“点”重复值的项目。我的问题是,我如何让这些跳过的项目存储在某个地方,所以如果我点击有重复的项目,它会链接到其他页面与这些重复的列表? 这是我的代码

var request = $.ajax({
type: "GET",
    url: "example.com/rewards.json"
    dataType: "json",
    error: function (data, textStatus){
         console.log( "it`s error" );
             console.log( status );
         console.log( data );},
        success: function (data, textStatus){
        console.log( "success" );
        console.log( status );
        console.log( data );
         }
        })
        request.success(function(data, textStatus){
            var lis = "";
            var arr = [];
            var iter = 0;

            $.each(data.rewards, function(key, val){
                if ($.inArray(val.points, arr) == -1)
                    {
                        lis += "<div class = 'ui-block-" + String.fromCharCode(97 + iter%3) + "'><a href ='#' class ='ui-link-inherit'>" + val.points + "</a></div>";
                        arr.push(val.points);
                        iter +=  1;
                    }
            });
            $("#rewards_table").html(lis);
        })

我想要的描述可能有点混乱,所以随时问我任何事情

1 个答案:

答案 0 :(得分:2)

您只需这样做:将它们存放在某处以备日后使用。

例如,将此行放在代码的顶部:

var duplicates = [];

...并将此else添加到if迭代器函数中的$.each

else
   {
   duplicates.push(val.points);
   }

(我认为我在那里得到了你的支撑风格,对我来说有点陌生。:-))

以上假设您的所有代码都保存在某种包含函数中,以避免创建全局变量,因此duplicates(就像您现有的request变量一样)不会最终成为全局变量