javascript动态为html元素添加事件?

2024-11-15 19:50:19
推荐回答(2个)
回答(1):

用闭包来解决就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+']');

回答(2):

你使用的是数组循环来做的吧?这样的确会有这个问题,你贴代码,我给你改