老师麻烦看下代码遇到个问题我写在代码注释里面了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type='text' id='num1' />
<select id='operate'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='num2' />
<input type='button' value=' = ' id="btn" />
<input type='text' id='result' />
<script>
//先取到每个节点
var num1 = document.getElementById('num1');
var select_s = document.getElementById('operate');
var num2 = document.getElementById('num2');
var btn = document.getElementById('btn');
var result = document.getElementById('result');
//定义了一个盒子sum来装计算结果
var sum = 0;
//监听事件来决定进行什么运算然后把结果装进sum
select_s.onclick = function () {
var ysf = select_s.value;
switch (ysf) {
case '+':
sum = Number(num1.value) + Number(num2.value);
console.log(sum);
break;
case '-':
sum = num1.value - num2.value;
break;
case '*':
sum = num1.value * num2.value;
break;
case '/':
sum = num1.value / num2.value;
break;
default:
break;
}
}
//但是不知道为什么这sum值并没有变化,我是定义的全局变量sum啊,,,老师求解
console.log(sum);
btn.onclick = function () {
result.innerHTML = sum;
}
</script>
</body>
</html>
26
收起
正在回答 回答被采纳积分+1
2回答
qq_口天吴_0
2021-04-01 12:24:35
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type='text' id='num1' />
<select id='operate'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='num2' />
<input type='button' value=' = ' id="btn" />
<input type='text' id='result' />
<script>
//先取到每个节点
var num1 = document.getElementById('num1');
var select_s = document.getElementById('operate');
var num2 = document.getElementById('num2');
var btn = document.getElementById('btn');
var result = document.getElementById('result');
//定义了一个盒子sum来装计算结果
var sum = 0;
//监听事件来决定进行什么运算然后把结果装进sum
// 监听 "=" 按钮 btn 而不是监听选择按钮 + - * /
// select_s.onclick = function () {
btn.onclick = function () {
var ysf = select_s.value;
switch (ysf) {
case '+':
sum = Number(num1.value) + Number(num2.value);
console.log(sum);
break;
case '-':
sum = num1.value - num2.value;
break;
case '*':
sum = num1.value * num2.value;
break;
case '/':
sum = num1.value / num2.value;
break;
default:
break;
}
//代码要移动到这里
result.value = sum;
}
//但是不知道为什么这sum值并没有变化,我是定义的全局变量sum啊,,,老师求解
console.log(sum);
// btn.onclick = function () {
// // result.innerHTML = sum;
// // 计算结果sum 是要变成 result的值(value).而不是变成代码
// // 而且要在一次监听里面完成计算, 如果分开代码应该是覆盖了,重写了.
// result.value = sum;
// }
</script>
</body>
</html>
首先,我也是自学的,不是老师.解释不一定正确.但是代码已经实现功能了.
其次你这个代码的逻辑也太乱了,我记得回答里面还是笔记里面有一个标准答案,我也是参考那个的.我一开始写的稍微比较乱,但没你这么乱.我记得我有发布在笔记里面
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星