<!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;
document.write(c);
//获取通过下拉框来选择的值来改变加减乘除的运算法则
switch(c)
{
case "+":
d=Number(a)+Number(b);
break;
case "-":
d=Number(a)-Number(b);
break;
case "*":
d=Number(a)*Number(b);
break;
case "/":
d=Number(a)/Number(b);
break;
}
//设置结果输入框的值
document.write(d);
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>
代码如上,为什么计算3加3的过程中写入两个document.write()结果就变成下图这样而不是下面第二个图的样式呢?
document.write插入js标签会覆盖页面又两种情况:
通过onclick() 点击事件触发执行document.write(),会使document.write()覆盖原来的页面。
在window.onload里面执行document.write(),也会将原来的页面覆盖。
d1 = document.getElementById("txt1").value;
d2 = document.getElementById("txt2").value;
switch(document.getElementById("select").value){
case "+":
document.getElementById("fruit").value = parseInt(d1) + parseInt(d2);
break;
case "-":
document.getElementById("fruit").value = parseInt(d1) - parseInt(d2);
break;
case "*":
document.getElementById("fruit").value = parseInt(d1) * parseInt(d2);
break;
default:
document.getElementById("fruit").value = parseInt(d1) / parseInt(d2);
}
}