推送后阵列重置

时间:2013-11-12 11:41:21

标签: javascript jquery

我希望当我按下提交按钮时,它会为数组添加一个值,但它会保持返回相同的值。

$(document).ready(function(){
    if(typeof arr == "undefined"){
        var arr = new Array();
    }

    arr.push(2);
    $("#submit").click(function(){
       console.log(arr);
    });
});

我希望每次按这样提交时添加2: 先按

[2]

第二次按

[2, 2]

但是现在数组只保持2,就好像它只是刷新一样。

4 个答案:

答案 0 :(得分:4)

你的push在DOMReady中。它只被称为一次。您的意思是在#submit点击监听器中调用它吗?

或者#submit点击是否实际提交了一个表单,以便您最终重新加载页面,并且您希望DOMReady附加到现有数组?在这种情况下,不,它不起作用,javascript变量在页面刷新时不会持久(除非你将它们存储在cookie或localStorage之类的东西中)

答案 1 :(得分:3)

您应该在push()事件中调用click()以使其在每次点击时都能运行:

$(document).ready(function(){
    if(typeof arr == "undefined"){
        var arr = new Array();
    }

    $("#submit").click(function(){
       arr.push(2);
       console.log(arr);
    });
});

答案 2 :(得分:-1)

您的问题是页面不知道以前的任何值,当您单击需要将其提交到服务器/保存在存储中的按钮(cookie / localStorage / etc)时,在页面加载时您应该检索那些值再次,这样数组将在页面重新加载中保持

答案 3 :(得分:-1)

试试这个

 $("#submit").click(function(){
    arr.push(2);
    console.log(arr);
        $.each(arr, function(index, newArr){
           // console.log(newArr);
        });
    });