【发布时间】:2021-01-12 02:55:33
【问题描述】:
我试图让一个复选框返回 1 或 0,具体取决于它是否被选中。我很难理解为什么这个 if 函数的返回不起作用。如果我使用 console.log 而不是 return 输出是正确的。选中时为 1 未选中时为 0。使用 return,checked 被跳过,它只返回 else 语句,所以它是 0,无论是选中还是未选中。我一般是编码新手,所以我确定我在这里遗漏了一些简单的东西。有任何想法吗?谢谢!
document.getElementById("materialLoaded").addEventListener('input', materialCheck);
function materialCheck() {
if (this.checked) {
return 1;
} else {
return 0;
}
}
【问题讨论】:
-
return 到底应该做什么?
-
它应该返回到哪里?你是在告诉浏览器:请在未来有输入事件时运行这个函数。结果在你调用
addEventListener之后很久才出现 -
console.log将登录到控制台(顾名思义),而return只是结束函数并将值传递给调用该函数的任何对象。由于您没有使用该返回值,因此您不会看到任何东西,但它是产生的。 -
这感觉像是 X/Y 问题。
-
是的,我猜这是一个 X/Y 问题。当检查三个复选框时,我尝试获取HTML元素以从红色更改为绿色。所以我试图对返回做的是在每次注册新输入时传递一个复选框的新值,这样我就可以在另一个函数中使用该值,当所有三个复选框都被选中时,它将改变 HTML 元素的颜色.反正这是我的想法。这可能是处理此类事情的完全错误的方法,但我想我会尝试一下,看看它会去哪里。
标签: javascript return iif-function