慕容8154426
2017-09-29 13:21
//方法一:
function count(){
var a=document.getElementById("txt1").value;
var b=document.getElementById("txt2").value;
var c=document.getElementById("fruit").value;
var selecting=document.getElementById("select").value;
switch(selecting){
case "+":
c.setAttribute("value",parseInt(a)+parseInt(b));
break;
case "-":
c.setAttribute("value",parseInt(a)-parseInt(b));
break;
case "*":
c.setAttribute("value",parseInt(a)*parseInt(b));
break;
case "/":
c.setAttribute("value",parseInt(a)/parseInt(b));
break;
}
}
为什么这种方法实现不了,还请解答,谢谢
setAttribute的语法是element.setAttribute(attributename,attributevalue)
你定义c为 var =document.getElementById("fruit").value;
但是 加上 .value 后c指向的就不是Element(元素),不能进行后面的c.setAttribute("value",parseInt(a)+parseInt(b));
所以得定义为var c=document.getElementById("fruit");让c指向id为fruit的元素
var c=document.getElementById("fruit").value;这个取到的是空值,不能先取,
写成这样
case "+":
document.getElementById("fruit").setAttribute("value",parseInt(a)+parseInt(b));
break;
就可以了,顺序错了
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题