无法在堆栈

问题描述:

在该代码存储值时,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('')); 
} 
+0

很好,解决它,这是一个编程错误与动作。 – 2011-04-20 08:09:09

假设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