this.value 和oButton[i].value的区别

this.value 和oButton[i].value的区别

<!DOCTYPE html>

<html>

<head>

<title>calculator</title>

<link rel="stylesheet" type="text/css" href="cal.css">

<script type='text/javascript' src='cal.js'></script>

</head>

<body onload="cal_1()">

<div id="div1">

<div id='div2'>

<input type="text" name="" id='text_o'>

</div>

<div id='div3'>

<input type="button" value="C" name="" id="">

<input type="button" value="←" name="" id="">

<input type="button" value="+/-" name="" id="">

<input type="button" value="/" name="" id="">

<input type="button" value="1" name="" id="">

<input type="button" value="2" name="" id="">

<input type="button" value="3" name="" id="">

<input type="button" value="×" name="" id="">

<input type="button" value="4" name="" id="">

<input type="button" value="5" name="" id="">

<input type="button" value="6" name="" id="">

<input type="button" value="-" name="" id="">

<input type="button" value="7" name="" id="">

<input type="button" value="8" name="" id="">

<input type="button" value="9" name="" id="">

<input type="button" value="+" name="" id="">

<input type="button" value="0" name="" id="">

<input type="button" value="." name="" id="">

<input type="button" value="=" name="" id="">

<input type="button" value="M" name="" id="">

</div>

</div>

</body>

</html>





js:

function cal_1(){

//

var num=document.getElementById('text_o');

num.value=0;

num.disabled='disabled';

//

var oButton=document.getElementsByTagName('input');

for(var i=0; i<oButton.length; i++){

oButton[i].onclick=function(){

alert(this.value);

}

}

}



css:

*{

margin: 0px;

padding: 0px;

}


div{

width: 611px;

}


#div1{

position: absolute;

left: 33%;

top: 30%;

}


input[type='button']{

width: 100px;

height: 50px;

margin-right: 49px;

margin-top: 40px;

font-size: 40px;

}


input[type='text']{

width: 560px;

height: 50px;

text-align: right;

font-size: 40px;

background-color: #fff;

border: 1px solid;

}

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

红框内为什么不能是oButton[i].value,如果是oButton[i].value的话不能输出提示

正在回答

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

1回答

同学,你好。当执行第一次循环i=0时,即oButton[0]得到第一个元素,给该元素绑定click事件,当触发该事件时,会执行函数中的内容,此时,this可以理解为oButton[0],因此写oButton[i].value是会报错的,oButton[i]是不存在的。当i=1时,this表示为oButton[1],以类此推,在for循环中,获取到哪个对象,this表示为哪个对象。

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

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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