<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(){
var otxt1=document.getElementById("txt1").value;
var otxt2=document.getElementById("txt2").value;
var osel=document.getElementById("select").value;
var result="";
switch(osel){
case"+":
result=parseInt(otxt1) + parseInt(otxt2);
break;
case"-":
result=parseInt(otxt1) - parseInt(otxt2);
break;
case"*":
result=parseInt(otxt1) * parseInt(otxt2);
break;
default:
result=parseInt(otxt1) / parseInt(otxt2);
}
document.getElementById("fruit")=result;
}
</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>
document.getElementById("fruit").value=result; 少个value
document.getElementById("fruit")=result; 这样的方式是错误的,这行代码的意思是把result的值赋给Id为fruit的这个对象,用变量给对象赋值肯定是错误的。这里要改成document.getElementById("fruit").value=result; 这样才表示的是给Id为fruit的对象的value属性赋值。
另外再给你一点建议:
var otxt1=document.getElementById("txt1").value;
var otxt2=document.getElementById("txt2").value;
这两个地方,并没有错,但是可以进行一些优化会让你的代码更简洁,修改为
var otxt1=parseInt(document.getElementById("txt1").value);
var otxt2=parseInt(document.getElementById("txt2").value);
这样,你拿到这两个值的时候已经转换为整数了,可以直接进行运算。当然也可以写成这样:
var otxt1=document.getElementById("txt1").value;
var otxt2=document.getElementById("txt2").value;
otxt1=parseInt(otxt1);
otxt2=parseInt(otxt2);
这样也会直接将值转换为整数,直接进行运算,不用在每次运算的时候都去转换一次。
document.getElementById("fruit").innerHTML=result
document.getElementById("fruit")=result;这里的问题,改成document.getElementById("fruit").value=result;