DHWI
2016-10-26 10:10
请问各位,为什么要有{var result;document.getElementById('fruit').value=result}这个步骤,为什么不能直接{var result=document.getElementById('fruit')}?
这里主要是赋值的问题,两个语句都分析一下吧
第一条语句:一开始是声明了d这个变量用来接收结果值,也就是说两个文本框的变量经过加减乘除的操作之后赋值给d,d是最终的结果值,此时将d赋值给结果框,就是要的最终结果了。
第二条语句:只是将fruit这个文本框里的内容赋值给了变量d,而此时的文本框里是没有内容的,后面的操作(即进行加减乘除),都是对d进行的操作,与fruit那个文本框无关了,所以这种会失败
这里主要是赋值的问题,两个语句都分析一下吧
第一条语句:一开始是声明了d这个变量用来接收结果值,也就是说两个文本框的变量经过加减乘除的操作之后赋值给d,d是最终的结果值,此时将d赋值给结果框,就是要的最终结果了。
第二条语句:只是将fruit这个文本框里的内容赋值给了变量d,而此时的文本框里是没有内容的,后面的操作(即进行加减乘除),都是对d进行的操作,与fruit那个文本框无关了,所以这种会失败
为什么要有这一步的原因。
document.getElementById("fruit").value = d //将变量d的值赋给那个叫fruit的文本框 var d=document.getElementById("fruit").value //将fruit文本框的值赋给变量d
以上两句代码的逻辑是不一样的。
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(){
var d = "";
var a=document.getElementById("txt1").value;
//获取第一个输入框的值
var b=document.getElementById("txt2").value;
//获取第二个输入框的值
var c=document.getElementById("select").value;
//获取选择框的值
switch(c)
{
case "+":
//d = a + b;
d = parseInt(a)+parseInt(b);
break;
case "-":
d = a-b;
break;
case "*":
d = a*b;
break;
default:
d = a/b;
}
document.getElementById("fruit").value = d;
}
</script>
</head>
<body>
计数器:<input type='text' id='txt1' />
<select id='select'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='txt2' />
<input type='button' value='=' onclick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果-->
<input type='text' id='fruit' />
</body>
</html>
我想说的是这个案例中为什么 要有var d = ""; document.getElementById("fruit").value = d;这一步?为什么不能直接var d=document.getElementById("fruit").value ?
赋值运算时从等号右边往等号左边运算的。前面的是把result赋值给fruit的值。后一个时取fruit的值赋值给result。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题