我希望当我按下提交按钮时,它会为数组添加一个值,但它会保持返回相同的值。
$(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,就好像它只是刷新一样。
答案 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);
});
});