为什么声明一个变量来做缓存,不能够直接将'x+y'等运算写入(比如:用innerHTML,innerText).

<!DOCTYPE html>
<html>
 <head>
  <title> 事件</title>  
  <script type="text/javascript">
   function count(){
    var x=parseFloat(document.getElementById('txt1').value);
    var y=parseFloat(document.getElementById('txt2').value);
    var z=document.getElementById('select').value;
    var result='';
    switch(z){
        case '+':
        result=x+y

(这里为什么不能直接用 ‘innerText=x+y’直接将结果写入,而要用变量作为缓存呢)
        break;
        case '-':
        result=x-y;
        break;
        case '*':
        result=x*y;
        break;
        default:
        result=x/y;
       
    }
    //获取第一个输入框的值
    //获取第二个输入框的值
    //获取选择框的值
    //获取通过下拉框来选择的值来改变加减乘除的运算法则
    //设置结果输入框的值
    document.getElementById('fruit').value=result;
   }
  </script>
 </head>
 <body>
   <input type='text' id='txt1' />
   <select id='select'>
        <option value='+'>+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
   </select>
   <input type='text' id='txt2' />
   <input type='button' value=' = ' onclick='count()'/> <!--通过 = 按钮来调用创建的函数,得到结果-->
   <input type='text' id='fruit' />   
 </body>
</html>



一念花开_1
浏览 1329回答 2
2回答

一瞬儿光

  function count(){     var x=parseFloat(document.getElementById('txt1').value);     var y=parseFloat(document.getElementById('txt2').value);     var z=document.getElementById('select').value;     var result='';     switch(z){         case '+':          document.getElementById('fruit').value=x+y; //(这里为什么不能直接用 ‘innerText=x+y’直接将结果写入,而要用变量作为缓存呢)         break;         case '-':         result=x-y;         break;         case '*':         result=x*y;         break;         default:         result=x/y;             }     //获取第一个输入框的值     //获取第二个输入框的值     //获取选择框的值     //获取通过下拉框来选择的值来改变加减乘除的运算法则     //设置结果输入框的值      //document.getElementById('fruit').value=result;    }    //input框赋值只能用.value;    //innerText是对非input标签,替换文本,不存在你说的必须变量缓存,而且那也不叫变量缓存

Caballarii

你觉得这样好你就去试试呗
打开App,查看更多内容
随时随地看视频慕课网APP