javascript - 我的函数返回值得到一个空字符串
问题描述
当我尝试在另一个函数中使用我的函数的返回值时,我得到一个空字符串。我将函数值声明为变量,所以我不确定为什么会这样。
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 时,我应该得到一些值,具体取决于我在输入字段中输入的内容,但我什么也没得到。当我尝试记录值时,我得到一个空字符串“”。
解决方案
您在开始时仅调用函数(fnCalIn 和 fnCalOut)一次,然后它们的值保持静态,页面中的任何更改都不会影响它们。尝试改变
var clCalDt = fnCalOut - fnCalIn;
至:
var clCalDt = calOut() - calIn();
以便重新计算值。
推荐阅读
- tensorflow - 如何在张量中使用字符串类别作为特征?(如果可能在 tensorflow js 中)
- python - 如何在文件中重新子模式
- c# - Entity Framework Core - 更新嵌套实体
- python - sys.modules[__name__] = _classname()。它实际上是做什么的?
- google-colaboratory - 有没有人在 colab 上安装 ludwig 时遇到过同样的错误?
- python - 在我的网格布局中绘制到许多坐标系,然后使用 seaborn 和 mathplotlib 绘制
- excel - 如何从Excel中的数字中获取第一个有效数字?
- android - 编译 native_app_glue.c 导致库文件无效
- python-3.x - 基于条件的 Pandas 窗口平均值
- java - Java 系统独立的根目录路径