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

关于获取元素ID的各种问题和他的运算顺序。。。。大神们帮帮忙!!!

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>style样式</title>
<script type="text/javascript">
var numresult;
var str;
function onclicknum(nums) {
   str = document.getElementById("nummessege");
   str.value = str.value + nums;
}
</script>
</head>
<body>
<input type="text" id="nummessege"  />
<input type="button" value="4" id="4" onclick="onclicknum(4)">
</body>
</html>

这段代码到底是怎么运算的,他的运算顺序是怎么回事?

正在回答

3 回答

<input type="button" onclick="onclicknum(4)">按钮绑定了click事件 ,并添加了事件处理函数onclicknum。当单击按钮时,调用onclicknum函数,同时传递了一个参数4给onclicknum函数,它里面的nums变量就被赋值为4

函数里面 document.getElementById("nummessege"),它获取到<input id="nummessege"/>,由于它没有value, 所以str.value得到的是空字符串。

str.value = str.value + nums,等号是赋值运算符,运算优先级最低,所以先算右边 str.value + nums,它实际是

''(空字符串)+4,结果是'4',然后赋值给左边str.value 那么<input id="nummessege"/>文本框中显示4。

当再点击时,4又传给了onclicknum函数,这时里面str.value=4, 那么‘4’+4=44.文本框中显示44。

这里有两点需要注意:

    1, input 文本框返回值是一个字符串,虽然你输入数字4到文本框中,但它返回字符串'4',str.value ='4'

    2, + 优先做字符串连接。'4'+4 = '44'

如果做算术加,一般用parseInt 或parseFloat函数,显示把字符串转换为数字,str.value =parseInt(str.value) + nums; 但这是有一个问题,<input type="text" id="nummessege"  /> 最开始没有value, 是空字符串,当进行第一次计算,parseInt('') 返回NaN, 以后无法进行计算了。

由于这里只是4这一个数字的相加,所有用Number 进行显示转换就可以了。str.value =Number(str.value) + nums;  这时文本框时就显示4, 8, 12等。

1 回复 有任何疑惑可以回复我~
#1

图图是个大天才 提问者

讲解的很详细,非常感谢,对我帮助很大
2016-03-20 回复 有任何疑惑可以回复我~

先是定义参数,inpurt定义一个nummessgee,input将获取的参数值4传送给document.getelemetbyid,点击按钮时onclicknoum复制输入刚才的值,大概是这样吧

1 回复 有任何疑惑可以回复我~

单击事件发生时传递参数4给函数onclicknum(),并改变文本框对象的值

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于获取元素ID的各种问题和他的运算顺序。。。。大神们帮帮忙!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信