我是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。
让我们去看看你的代码,有几个错误:
-
您已经声明了一个函数
compute()
(第一个(,它可以创建一个值并将其赋值给一些作用域在函数内的变量!在第二个compute()
函数中,您试图访问那些未在其内部声明的变量的值,这些变量的范围仅限于第一个函数->因此编译器将给出错误CCD_ 3。 -
getElementById
有一个拼写错误:var rate = parseFloat(document.getElementByIdementById("rate").value);
-
在第一个
compute()
函数中,您使用相同的名称years
->最好使用不同的名称或简单地覆盖它。 -
您在两个不同的HTML标记中使用了相同的
id="result"
,这没有意义,因为id
应该只标识一个元素;我想您希望将详细说明的结果放在<p>
元素中。
所以你必须修改你的代码,并将其放入一个compute()
函数中:
<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>
- 参考:JavaScript函数的范围
p。S=我想给你一个建议,避免对多个函数使用相同的名称,你可能会遇到意外的行为
也许这会奏效。
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属性值必须是唯一的。
这应该适用于您:
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>
让我知道进展如何!