为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问改如何使用jquery for循环 i自动增长 id?

你好,请问改如何使用jquery for循环 i自动增长 id?

天涯尽头无女友 2021-06-23 14:14:13
for(var i=0;i<91;i++){$("#wenti"+i+" input").click(function() {$("#wenti"+i+" input").attr("id",'off');$(this).attr('id','on');var wenti+i=Number($("#wenti"+i+" #on").val());w+i = wenti+i;});生成90个 对应前台的 id="wenti1"到 id="wenti90" 下面的input我上面这个写完没有任何效果。。。 一个一个手动加就可以
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

很经典的逢面试必考的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);    );}


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 293 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信