0

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

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

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

我希望它在每次按下提交时添加一个 2,如下所示:First press

[2]

第二次按下

[2, 2]

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

4

4 回答 4

4

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

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

于 2013-11-12T11:45:02.983 回答
3

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

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

    $("#submit").click(function(){
       arr.push(2);
       console.log(arr);
    });
});
于 2013-11-12T11:47:54.803 回答
-1

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

于 2013-11-12T11:46:32.527 回答
-1

试试这个

 $("#submit").click(function(){
    arr.push(2);
    console.log(arr);
        $.each(arr, function(index, newArr){
           // console.log(newArr);
        });
    });
于 2013-11-12T11:47:33.547 回答