关于dom在循环中无法正常使用问题

关于dom在循环中无法正常使用问题

http://img1.sycdn.imooc.com//climg/6046f4ba09598db325481502.jpg

我想使用该方法,优化代码。实现给0-9的按键赋予点击事件,但是实践后发现,并不能得到预期结果,点击计任意算器的 0-9按键,text文本都显示为10,很明显,使用for循环给dom传进去的参数,只有num9和10,而不是我想要的一一对应

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!init方法在页面加载完时执行,loopnum()中的for循环已经结束了,点击标签之后code和n的值都为9,因此调用num_lick()得到的结果也是不正确的。

http://img1.sycdn.imooc.com//climg/60471b520945482f01770082.jpg

参考代码:点击标签即可得到对应的value值

http://img1.sycdn.imooc.com//climg/60471e00098ef8b608780703.jpg

http://img1.sycdn.imooc.com//climg/60471da509806e0509170717.jpg

http://img1.sycdn.imooc.com//climg/60471dc409485d4c01180361.jpg

祝:学习愉快!

  • 饿少 提问者 #1

    正确的方法我能理解,就是我的这个方法的错误我还是理解不了,您说在页面初始化的时候loopnum()函数的for循环已经结束了,可是我document.getElementByID(code).value=....

    不也是for循环里面的么,他并不是在循环体以外的啊。怎么会只传入了 num9和9呢。



    2021-03-09 15:15:02
  • 好帮手慕美 回复 提问者 饿少 #2

    同学,你好!loopnum()中的for循环在页面加载后已经执行结束了,for循环中的document.getElementById(code).onclick是单击事件,当单击后触发该事件时,for循环已经执行过了,所以并不会获取循环过程中的i的值,因此code和n的值为9。

    祝:学习愉快!

    2021-03-09 15:46:13
  • 饿少 提问者 回复 好帮手慕美 #3

    我这个for循环的过程是在给这个单击事件赋值啊,并不是单击才能触发赋值,而是我给单击这个事件赋值后,单击才会出现结果,我将这一个函数分成两个函数就能正常使用了,http://img1.sycdn.imooc.com//climg/60476bd008adcc5505000716.jpg


    subnum()和loopnum()组合使用就能达到我想要的预期,但是照您所说,我这个loopnum里面也有for循环,应该运行不到想要的结果才对

    2021-03-09 20:37:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师