代码中的问题

代码中的问题

for(var i=1;i<oButton.length;i++){
		bv=oButton[i].value;
		oButton[i].onclick=function(){
			console.log(bv);
		}
	}

为什么上面代码会出现问题,将bv改为this.value就没事了

正在回答

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

4回答

同学你好,this是触发onclick事件的HTML 元素,而oButton[i] 是所有input标签循环的元素

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小尤 2020-03-30 14:26:09

同学你好,1. 在方法中,函数的所属者默认绑定到 this 上。在浏览器中,window 就是该全局对象为 [object Window];如下所示:

http://img1.sycdn.imooc.com//climg/5e8190770995b88807210392.jpg

2. 如果绑定了事件,则this 指向了接收事件的 HTML 元素。如下所示:

http://img1.sycdn.imooc.com//climg/5e8190e70945093c06220425.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 万象天心 #1
    那我的代码里,绑定了事件的this和oButton[i]是哪里不同呢
    2020-03-30 19:30:54
guly 2020-03-27 15:59:52

你好,oButton[i]  是所有input标签循环的元素如下图oButton表示计算器点击的所有input标签,而

this.value是输出框对象,
http://img1.sycdn.imooc.com//climg/5e7db21009dd0b1214320094.jpg

如果解决您的问题请采纳,祝学习愉快!

  • 提问者 万象天心 #1
    oButton[i]是input标签,this.value是输出框对象,那this是什么
    2020-03-30 10:05:33
guly 2020-03-27 13:24:00

你好,因为表示对象不一样,如:

http://img1.sycdn.imooc.com//climg/5e7d8d8d09afed5803760062.jpg

打印结果为;

http://img1.sycdn.imooc.com//climg/5e7d8d73099f9b2c06250624.jpg

oButton[i]对象未知,所以不能代替this。如果解决您的问题请采纳,祝学习愉快!

  • 提问者 万象天心 #1
    麻烦详细讲一下,为什么不是一个对象呢
    2020-03-27 15:06:24
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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