用闭包来解决就ok了,了解一下闭包吧!
cookie_str = cookies[j]["name"];在循环中这样用是不行的,j是引用,循环结束之后j的结果都是一样的,所有你永远得到的是最后一个,因为引用指向本来就是最后一个!
要解决这个问题,就要让j立即被运算出新结果,而不是留待上下文引用
这样试试:
cookie_str = (function(n){var fun=function(){return cookies[n]["name"];};return fun()})(j);
cookie_ = (function(n){var fun=function(){return cookies[n];};return fun()})(j);
或者这样:
cookie_str = eval('cookies['+j+']["name"]');
cookie_ = eval('cookies['+j+']');
你使用的是数组循环来做的吧?这样的确会有这个问题,你贴代码,我给你改