如何用它我的代码 但是每次出错 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MyHtml.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=GB18030">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript">


      var temp ;
      
function recevie(val){
alert("hello");
temp = val;
}

var numberAdd={
firstNum:document.getElementById('firstNum').value,
secondNum:document.getElementById('secondNum').value,
result:document.getElementById('result')
//jia:parseInt(numberAdd.firstNum)+parseInt(numberAdd.secondNum),
//jian:parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum),
//cheng:parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum),
//chu:parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum)
};

function jiSuan(){
alert(numberAdd.firstNum);
}

/*
function jiSuan(){
if(temp=="+"){

numberAdd.result.value =numberAdd.jia;
return;
}
if(temp=="-"){
numberAdd.result.value =numberAdd.jian;
//numberAdd.result.value = parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum);
//return;
}
if(temp=="*"){
numberAdd.result.value =numberAdd.cheng;
//numberAdd.result.value = parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum);
//return;
}
if(temp=="/"){
numberAdd.result.value =numberAdd.chu;
//numberAdd.result.value = parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum);
//return;
}
}
*/
</script>  </head>
  
  <body>
    
    <input type="text" id="firstNum">
    <select name="sel" id="sele" onChange="recevie(this.value);" >
     <option>选择运算符</option>
     <option value="+">+</option>
     <option value="-" >-</option>
     <option value="*" >*</option>
     <option value="/">/</option>
    </select>
    <input type="text" id="secondNum"><input type="button" value="=" onclick="jiSuan();"><input type="text" readonly="readonly" id="result"><br/>
      </body>
</html>

解决方案 »

  1.   

    只能这样写在外面了 。
    numberAdd.firstNum = document.getElementById('firstNum').value;
      

  2.   

    脚本是预加载编译
    var numberAdd={
    firstNum:document.getElementById('firstNum').value,
    secondNum:document.getElementById('secondNum').value,
    result:document.getElementById('result')
    //jia:parseInt(numberAdd.firstNum)+parseInt(numberAdd.secondNum),
    //jian:parseInt(numberAdd.firstNum)-parseInt(numberAdd.secondNum),
    //cheng:parseInt(numberAdd.firstNum)*parseInt(numberAdd.secondNum),
    //chu:parseInt(numberAdd.firstNum)/parseInt(numberAdd.secondNum)
    };

    你这一段,如何能找到document.getElementById('firstNum').value?
    当你声明变量var numberAdd={
    firstNum:xxx的时候,他是找不到document.getElementById('firstNum')的,因为他还没有加载进来
    建议将这些代码放到body的最下面 或者进行window的load加载时运行
      

  3.   

    你可以尝试用命名空间来保持变量的安全性
    用闭包的单例模式来进行方法封装
    <html>
    <head>
        <script type="text/javascript">
        var JsuanQi=new function(){
            var slef=this;
            this.getFirstNum=function(){return document.getElementById('firstNum').value;};
            this.getSecondNum=function(){return document.getElementById('secondNum').value;};
            this.getResult=function(){return document.getElementById('result').value;};
            this.jia=function(){return parseInt(slef.getFirstNum())+parseInt(slef.getSecondNum());};
            this.jian=function(){return parseInt(slef.getFirstNum())-parseInt(slef.getSecondNum());};
            this.cheng=function(){return parseInt(slef.getFirstNum())*parseInt(slef.getSecondNum());};
            this.chu=function(){return parseInt(slef.getFirstNum())/parseInt(slef.getSecondNum());};        this.jiSuan=function(){
                var fu=document.getElementById('sele').value;
                var ret="";
                switch (fu){
                    case "+":{ret=slef.jia();break;}
                    case "-":{ret=slef.jian();break;}
                    case "*":{ret=slef.cheng();break;}
                    case "/":{ret=slef.chu();break;}
                    default:{ret="";break;}
                }
               document.getElementById('result').value =ret;
            }
        }
        </script>
    </head>
      <body>
      <input type="text" id="firstNum">
      <select name="sel" id="sele"  >
      <option>选择运算符</option>
      <option value="+">+</option>
      <option value="-" >-</option>
      <option value="*" >*</option>
      <option value="/">/</option>
      </select>
      <input type="text" id="secondNum">
      <input type="button" value="=" onclick="JsuanQi.jiSuan();">
      <input type="text" readonly="readonly" id="result"><br/>
      </body>
    </html>