首页 > 解决方案 > delta 的 Js 值始终等于 0

问题描述

大家好,我是 js 新手,我正在尝试制作一个简单的程序来计算 delta,但问题是我总是 delta 0 的值,但是当我将静态值设置为 delta 时,它会显示正确的值在哪里是问题,谢谢

var first = document.getElementById("Cofession1"),
second = document.getElementById("Cofession2"),
third = document.getElementById("Cofession3"),
displayMessage = document.getElementById("solution"),
a = first.value,
b = second.value,
c = third.value,
btnClick = document.getElementById("calculateButton");
btnClick.onclick = function () {
var delta = b*5;
displayMessage.innerHTML = "delta = " + delta;
}

这是html

<input type="text" name="" id="Cofession1" placeholder="The value of a">
<input type="text" name="" id="Cofession2" placeholder="The value of b">
<input type="text" name="" id="Cofession3" placeholder="The value of c">
<button id="calculateButton">Calculate</button>
<div id="solution"></div>

标签: javascripthtmldomvar

解决方案


ab和的值c不会自动更新:您需要在 onclick 方法中分配它们,以便它们反映单击按钮时的值。否则,它们将始终为空字符串,因为它们仅在运行时进行评估。

另外,我不建议直接分配给onclick,而是使用更现代的addEventListener

var first = document.getElementById("Cofession1");
var second = document.getElementById("Cofession2");
var third = document.getElementById("Cofession3");
var displayMessage = document.getElementById("solution");

btnClick = document.getElementById("calculateButton");
btnClick.addEventListener('click', function() {
  // Assign values in the event handler
  var a = first.value;
  var b = second.value;
  var c = third.value;
  var delta = b * 5;
  displayMessage.innerHTML = "delta = " + delta;
});
<input type="text" name="" id="Cofession1" placeholder="The value of a">
<input type="text" name="" id="Cofession2" placeholder="The value of b">
<input type="text" name="" id="Cofession3" placeholder="The value of c">
<button id="calculateButton">Calculate</button>
<div id="solution"></div>


推荐阅读