getElementById不工作-根本不返回任何内容

getElementById not working - not returning anything at all

本文关键字:任何内 返回 -根 工作 getElementById      更新时间:2023-09-26

代码应该做什么:

  1. 获取用户输入(汽车贷款金额)
  2. 让用户点击按钮
  3. 每月公布汽车pmt

这是代码:

<script type="text/javascript"> 
  var myObject = {
      myFunction: function(){
          return document.getElementById("carDebt");     
      },
      h: function(){
          var carLoan=myFunction();
          var RATE12 = 0.005;
          var TIMERATE = 0.25862780376;
          return Math.round((carLoan * RATE12) / TIMERATE);     
      }
      writeIt: function(){
          var g = myObject.h();
          var xyz = g;
          var abc = 2;
          var efg = 3;
          var somearray = [xyz,abc,efg];
          var z = 0;
          for (i=0; i<somearray.length; i++) {
              z += somearray[i]; 
          }; 
          document.getElementById("result").innerHTML=z;        
      }
  };
</script>
<body>
  <form>
    Amt Due on Car Loan: <input type="number" id="carDebt">
  </form>
  <form>
    <input type="button" onclick="myObject.writeIt()" value="Click here when done"      id="button1">
  </form>
  <p id="result">Results Here</p>
</body>

我没有得到任何东西,比如在,甚至没有NaN或未定义。我可能错过了一些显而易见的东西,但我已经尝试了一千种不同的方法!

这一行可能是罪魁祸首:

var carLoan=myFunction();

尝试引用它所在的对象:

var carLoan = myObject.myFunction();

此外,该函数返回的是DOM元素,而不是DOM元素的值。您可能需要编辑函数以返回值:

myFunction: function(){
   return document.getElementById("carDebt").value;
}

我还注意到您的标签似乎太多了。你的意思是有两种"形式"吗?

似乎答案已经在上面的组合中了,即修复拼写错误,获取值而不是元素,有一个"result"元素要输出。我还在myFunction调用中添加了"this"。我的版本:

<script type="text/javascript">
 var myObject = 
{ 
    myFunction: function()
        { 
            return document.getElementById("carDebt").value;            
        }, 
    h: function()
        { 
            var carLoan = this.myFunction(); 
            var RATE12 = 0.005; 
            var TIMERATE = 0.25862780376; 
            return Math.round((carLoan * RATE12) / TIMERATE); 
        },
    writeIt: function()
        { 
            var g = myObject.h(); 
            var xyz = g; 
            var abc = 2; 
            var efg = 3; 
            var somearray = [xyz,abc,efg]; 
            var z = 0; 
            for(i=0; i<somearray.length; i++)
            { 
                z += somearray[i]; 
            }; 
            document.getElementById("result").innerHTML=z; 
        } 
}; 
</script> 
</head>
<body> 
<form> Amt Due on Car Loan: <input type="number" id="carDebt"> </form> 
<form> <input type="button" onclick="myObject.writeIt()" value="Click here when done" id="button1"> </form>
<div><p id="result"></p></div>
</body>