繁体   English   中英

我似乎看不到我的 JavaScript 和 HTML 代码中缺少什么

[英]I can't seem to see what's missing in my JavaScript and HTML code

我是 JavaScript 的新手,并且很难显示我的计算结果。 我的 JavaScript 代码上的消息说它缺少声明变量。 我真的不知道还能尝试什么,因为我是新手,而且我已经坚持了几天了,这非常尴尬。 这是我的 HTML 代码,计算应显示在该代码中,以及相应的 JavaScript 代码:

function compute() {
    var principal = parseFloat(document.getElementById("principal").value);
    var rate = parseFloat(document.getElementByIdementById("rate").value);
    var years = parseFloat(document.getElementById("years").value);
    var result = principal * years * rate /100;
    var years = new Date().getFullYear()+parseInt(years);
}

<button onclick="compute()">Compute Interest</button>
<span id="result"></span>
<p id="result"></p>

<script>
function compute() {
   document.getElementById("result").innerHTML = "If you deposit<mark>"
   +principal+"</mark>,<br/> at an interest rate of<mark>"
   +rate+"%</mark><br/>. You will receive an amount of<mark>"+result+
   ",</mark><br/>in the year<mark>"+year+"</mark><br/>";
}
</script>

欢迎使用 StackOverflow。

让我们 go 看你的代码,有几个错误:

  1. 您已经声明了一个 function compute() (第一个),它创建并为 scope 在函数内部的一些变量赋值! 在第二个compute() function 中,您试图访问那些未在其中声明的变量的值,并且其 scope 仅限于第一个Undefined variable -> 因此编译器将给出错误。

  2. getElementById有一个拼写错误: var rate = parseFloat(document.getElementByIdementById("rate").value);

  3. 在第一个compute() function 中,您已经声明了一个使用相同名称years的变量 -> 最好使用不同的名称或简单地覆盖它。

  4. 您在两个不同的 HTML 标记中使用了相同的id="result" ,这没有意义,因为id应该只标识一个元素; 我想您想将详细说明的结果放在<p>元素中。

因此,您必须修改您的代码并将其放入一个compute() function 中:

<script>
function compute() {
    var principal = parseFloat(document.getElementById("principal").value);
    var rate = parseFloat(document.getElementById("rate").value);
    var years = parseFloat(document.getElementById("years").value);
    var result = principal * years * rate /100;
    var years_modified = new Date().getFullYear() + parseInt(years);

    document.getElementById("result").innerHTML = "If you deposit<mark>"
   + principal + "</mark> , <br/> at an interest rate of<mark>"
   + rate + "%</mark><br/>. You will receive an amount of<mark>" + result +
   ",</mark><br/>in the year<mark>" + years_modified + "</mark><br/>";
}
</script>

<button onclick="compute()">Compute Interest</button>
<span></span>
<p id="result"></p>

PS = 我想给你一个建议,避免使用多个 function 的同名,你可能会遇到意想不到的行为

这应该适合你:

HTML:

<script>
function compute() 
  {
   var principal = parseFloat(document.getElementById("principal").value);
   var rate = parseFloat(document.getElementById("rate").value);
   var years = parseFloat(document.getElementById("years").value);
   var result = principal * years * rate /100;
   var years_result = new Date().getFullYear()+parseInt(years);
   document.getElementById("result").innerHTML = "If you deposit<mark>"
   +principal+"</mark>,<br/> at an interest rate of<mark>"
   +rate+"%</mark><br/>. You will receive an amount of<mark>"+result+
   ",</mark><br/>in the year<mark>"+years_result+"</mark><br/>";
   }
 </script>
<button onclick="compute()">Compute Interest</button>
<span id="result"></span>
<p id="result"></p>

让我知道事情的后续!

也许这会奏效。

function compute() {
  var principal = parseFloat(document.getElementById("principal").value);
  var rate = parseFloat(document.getElementById("rate").value);
  var years = parseFloat(document.getElementById("years").value);
  var result = principal * years * rate / 100;
  var years_result = new Date().getFullYear() + parseInt(years);

  document.getElementById("result").innerHTML = `
    If you deposit <mark>${principal}</mark>
    <br/> at an interest rate of
    <mark>${rate}%</mark><br/>.
    You will receive an amount of <mark>${result}</mark>
    <br/> in the year <mark>${years_result}</mark><br/>`;
}

你也有一个错误var rate = parseFloat(document.getElementByIdementById("rate").value);

并且当在 HTML 元素上指定时,id 属性值必须是唯一的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM