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

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
我上面这个写完没有任何效果。。。 一个一个手动加就可以

天涯尽头无女友
浏览 294回答 1
1回答

元芳怎么了

很经典的逢面试必考的js问题for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;91;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;$("#wenti"&nbsp;+&nbsp;i&nbsp;+&nbsp;"&nbsp;input").click(function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#wenti"&nbsp;+&nbsp;i&nbsp;+&nbsp;"&nbsp;input").attr("id",&nbsp;'off');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;这个click的function和变量i构成了一个闭包&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;这里的i不是循环时的那个值,&nbsp;而是对变量i的一个引用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;循环结束时i的值是91,&nbsp;于是等到点击触发这个function时所有的i都是91&nbsp;&nbsp;&nbsp;&nbsp;});}解决方式是再包一层function, 给每一个闭包都创建一个自己的ifor&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;91;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;$("#wenti"&nbsp;+&nbsp;i&nbsp;+&nbsp;"&nbsp;input").click(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(function&nbsp;(j)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;function&nbsp;()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("#wenti"&nbsp;+&nbsp;j&nbsp;+&nbsp;"&nbsp;input").attr("id",&nbsp;'off');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})(i);&nbsp;&nbsp;&nbsp;&nbsp;);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery