jquery for循环 i自动增长 id
发布网友
发布时间:2022-04-26 23:52
我来回答
共1个回答
热心网友
时间:2022-06-20 11:43
很经典的逢面试必考的js问题
for (var i = 0; i < 91; i++) {
$("#wenti" + i + " input").click(function() {
$("#wenti" + i + " input").attr("id", 'off');
// 这个click的function和变量i构成了一个闭包
// 这里的i不是循环时的那个值, 而是对变量i的一个引用
// 循环结束时i的值是91, 于是等到点击触发这个function时所有的i都是91
});
}
解决方式是再包一层function, 给每一个闭包都创建一个自己的i
for (var i = 0; i < 91; i++) {
$("#wenti" + i + " input").click(
(function (j) {
return function () {
$("#wenti" + j + " input").attr("id", 'off');
};
})(i);
);
}