为什么 ID 与class 未定义却不报错,queryselector的用法

为什么 ID 与class 未定义却不报错,queryselector的用法

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>简易计算器</title>
<style>
header{
width: 500px;
height: 200px;
margin: 50px auto;
}
.div_2{padding-top: 20px;}
.div_2 input{margin-right: 20px;}
</style>
</head>
<body>
<header>
<div class="div_1">
<input type="text" class="tex1" id="tex1" value="5">
<span class="sign" id="sign">+</span>
<input type="text" class="tex2" id="tex2" value="4">
<span>=</span>
<span id="res">9</span>
</div>
<div class="div_2">
<input type="button" value="+" class="btns" title="add" id="addition"> 
<input type="button" value="-" class="btns" title="sub" id="subtraction"> 
<input type="button" value="*" class="btns" title="mul" id="multipcation"> 
<input type="button" value="/" class="btns" title="div" id="division"> 
</div>
<script>
var btns = document.getElementsByClassName('btns');
//回调
each(btns,function(index,elem){
elem.onclick=function(){
switch (this.id) {
case 'addition' : addResult();
break;
case 'subtraction' : subResult();
break;
case 'multipcation' : mulResult();
break;
case 'division' : divResult();
break;
}
}
});
//封装 for循环
function each(array,fn){
for(var i=0;i<btns.length;i++){
fn(i,array[i]);
}
}

//更新符号
function replacSign(sympo){
sign.innerHTML=sympo;
}

//运算符
//加法
function addr(num1,num2){
return +num1 + +num2 ;
}
//减法
function subr(num1,num2){
return num1 - num2 ;
}
//乘法
function mulr(num1,num2){
return num1 * num2 ;
}
//除法
function divr(num1,num2){
return num1 / num2 ;
}
//输出结果
function Result(output){
res.innerHTML = output;
}

function addResult(){
replacSign('+');
Result(addr(tex1.value,tex2.value));
}
function subResult(){
replacSign('-');
Result(subr(tex1.value,tex2.value));
}
function mulResult(){
replacSign('*');
Result(mulr(tex1.value,tex2.value));
}
function divResult(){
replacSign('/');
Result(divr(tex1.value,tex2.value));
}

</script>

</header>
</body>
</html>

如代码,tex1,tex2,sign,res都为给其定义,为何程序正常执行?

还有就是

var div_1 = document.querySelector('#div_1');

var tex1 = div_1.querySelector('.tex1');

var tex2 = div_1.querySelector('.tex2');

var sign = div_1.querySelector('#sign')

var res = div_1.querySelector('#res');

为何这样定义明明正确,但打印台处却总是无法识别queryselector属性

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕糖 2017-08-13 12:41:17

你好,1、id元素,可以不获取,直接使用。但是建议:为了代码的严谨,还是获取下。

2、无法识别queryselector属性,是因为div_1 元素没有获取到,这里是class,但是获取使用的是id。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师