在此代码中,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";
}
}
答案 0 :(得分:2)
有时这是最烦人的事。这是您尝试提醒堆栈长度的方式:相反,如果alert("stack: ",stack.length);
(结果将是:'stack:'),请使用:alert("stack: "+stack.length);
或alert(["stack: ",stack.length].join(''))
,或重写alert
所以它可以接收多个参数:
window._alert = alert;
window.alert = function(){
_alert(Array.prototype.slice.call(arguments).join(''));
}
答案 1 :(得分:0)
假设temp
中包含任何内容,该代码将成功推送到stack
。但我认为你的alert
可能搞砸了:
alert("stack: ",stack.length);
// ^--- here
你可能想要+
,alert
只需要一个参数。
示例(如果您没有jsbin.com的cookie,我以temp = "one,two,three"
开头):
Your version(显示stack:
但没有长度)
Working version(显示stack: 1
,然后显示stack: 2
,然后显示stack: 3
)