无法在堆栈
问题描述:
在该代码存储值时,subKeys
有一些值是从cookie,则信息提示cval: 3
提取物,但我无法推送存储中每个subKeys
值到stack
阵列是stack
总是空的。无法在堆栈
var stack = new Array();
var temp = document.cookie;
//alert("cookie: "+temp);
function upSelect() {
temp = temp.replace("tutorSelect=","");
subKeys=temp.split(",");
for(var i=0;i<subKeys.length;i++) {
alert("cval: "+subKeys.length);
//push to stack?
stack.push(String(subKeys[i]));
alert("stack: ",stack.length);
document.getElementById("t"+subKeys[i]).src="tta/rem.png";
}
}
答
有时候是最麻烦的事情。这是你试图提醒堆栈长度的方式来:不是,如果alert("stack: ",stack.length);
(结果将是:“堆:”),用途:alert("stack: "+stack.length);
或alert(["stack: ",stack.length].join(''))
,或重写alert
所以它可以接收多个参数:
window._alert = alert;
window.alert = function(){
_alert(Array.prototype.slice.call(arguments).join(''));
}
答
假设temp
中有任何东西,代码将成功推入stack
。但我认为你的alert
可能会混乱:
alert("stack: ",stack.length);
// ^--- here
你可能想要一个+
那里,alert
只需要一个参数。
例子(我开始与temp = "one,two,three"
如果您没有Cookie的jsbin.com):
Your version(显示stack:
但没有长度)
Working version(显示stack: 1
,然后stack: 2
,然后stack: 3
)
很好,解决它,这是一个编程错误与动作。 – 2011-04-20 08:09:09