为什么这两个做法都没反应呢?
<!DOCTYPE html>
<html>
<head>
<title> 事件</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=' = ' onclick="count()" />
<input type='text' id='result' />
<script type="text/javascript">
var num1 = document.querySelector('#num1').value,
num2 = document.querySelector('#num2').value,
operate = document.querySelector('#operate').value,
result = document.querySelector('#result').value;
function count() {
/*此处写代码*/
switch (operate) {
case '+':
return result = +num1 + +num2;
break;
case '-':
return result = num1 - num2;
break;
case '*':
return result = num1 * num2;
break;
case '/':
return result = num1 / num2;
break;
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title> 事件</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=' = ' onclick="count()" />
<input type='text' id='result' />
<script type="text/javascript">
function count() {
/*此处写代码*/
var calculator={
num1:document.querySelector('#num1').value,
num2:document.querySelector('#num2').value,
operate:document.querySelector('#operate').value,
result:document.querySelector('#result').value
};
switch(calculator[operate]){
case '+':
return calculator.result = +calculator.num1 + +calculator.num2;
break;
case '-':
return calculator.result = calculator.num1 - calculator.num2;
break;
case '*':
return calculator.result = calculator.num1 * calculator.num2;
break;
case '/':
return calculator.result = calculator.num1 / calculator.num2;
break;
}
}
</script>
</body>
</html>
正在回答
同学你好,理解的有些偏差,可以参考下方再理解下:
1、关于同学的第一条,是不需要加引号的,加引号会报错,正确写法如下:
控制台:
2、关于同学的第二条,理解的是正确的,例如:
控制台:
3、如果是变量的话,不需要加引号,如下:
控制台:
同学可以动手写一写代码,理解的会更深刻。祝学习愉快~
同学你好,关于同学的疑问,解答如下:
1、第一段代码:获取元素的代码要放到count函数里,不然获取输入框里面的内容会是空,具体修改可以参考下方:
修改后的代码:
<script type="text/javascript"> function count() { var num1 = document.querySelector('#num1').value, num2 = document.querySelector('#num2').value, operate = document.querySelector('#operate').value, // result = document.querySelector('#result').value; result = document.querySelector('#result'); switch (operate) { case '+': return result.value = +num1 + +num2; break; case '-': return result.value = num1 - num2; break; case '*': return result.value = num1 * num2; break; case '/': return result.value = num1 / num2; break; } } </script>
2、第二段代码:switch的条件不对,要使用字符串的形式,另外:获取result时不是直接获取value,要在赋值时写value,如下:
修改后的代码:
<script type="text/javascript"> function count() { /*此处写代码*/ var calculator = { num1: document.querySelector('#num1').value, num2: document.querySelector('#num2').value, operate: document.querySelector('#operate').value, // result: document.querySelector('#result').value result: document.querySelector('#result') }; // switch (calculator[operate]) { switch (calculator["operate"]) { case '+': return calculator.result.value = +calculator.num1 + +calculator.num2; break; case '-': return calculator.result.value = calculator.num1 - calculator.num2; break; case '*': return calculator.result.value = calculator.num1 * calculator.num2; break; case '/': return calculator.result.value = calculator.num1 / calculator.num2; break; } } </script>
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星