首页 > 解决方案 > 我的函数返回值得到一个空字符串

问题描述

当我尝试在另一个函数中使用我的函数的返回值时,我得到一个空字符串。我将函数值声明为变量,所以我不确定为什么会这样。

const fnCalIn = calIn();
const fnCalOut = calOut();

//to get the value in the calIn input field and turn it into a number then print to page
function calIn() {
  var calIn = document.getElementById("calIn").value;
  var clCalIn = Number(calIn);
  document.getElementById("demo-1").innerHTML = clCalIn;
  return clCalIn;
};

//to get the value in the calOut input field and turn it into a number then print to page
function calOut() {
  var calOut = document.getElementById("calOut").value;
  var clCalOut = Number(calOut);
  document.getElementById("demo-2").innerHTML = calOut;
  return calOut;
};

// Where I want to get the difference of the calOut and calIn values and print that to the page
function calDt() {
  var clCalDt = fnCalOut - fnCalIn;
  document.getElementById("calDt").innerHTML = clCalDt;
}
<h1 class="current">Today</h1>
<div>
  <h3>Calories in </h3>
  <input id="calIn">
  <button onclick="calIn()">Get value</button>
  <p id="demo-1"></p>
</div>

<div>
  <h3>Calories Out </h3>
  <input id="calOut">
  <button onclick="calOut()">Get value</button>
  <p id="demo-2"></p>
</div>

<div>
  <h3>Deficit </h3>
  <div>
    <p id="calDt"></p>
    <button onclick="calDt()">Get value</button>
  </div>
</div>

我一直得到 0 当我将 HTML 更改为 clCalDt 时,我应该得到一些值,具体取决于我在输入字段中输入的内容,但我什么也没得到。当我尝试记录值时,我得到一个空字符串“”。

标签: javascripthtml

解决方案


您在开始时仅调用函数(fnCalIn 和 fnCalOut)一次,然后它们的值保持静态,页面中的任何更改都不会影响它们。尝试改变

var clCalDt = fnCalOut - fnCalIn;

至:

var clCalDt = calOut() - calIn();

以便重新计算值。


推荐阅读