微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript:console.log是否可以正常工作但不能返回?

如何解决JavaScript:console.log是否可以正常工作但不能返回?

我试图获取一个复选框以返回1或0,具体取决于是否选中该复选框。我很难理解为什么if函数中的返回不起作用。如果我使用console.log而不是返回,则输出正确。选中时为1,未选中时为0。使用return时,checked被跳过,并且仅返回else语句,因此它为0(选中或未选中)。我是一般的编码新手,所以我确定这里缺少一些简单的东西。有任何想法吗?谢谢!

document.getElementById("materialLoaded").addEventListener('input',materialCheck);

function materialCheck() {

    if (this.checked) {
        return 1;
    } else {
        return 0;
    }
}

解决方法

请确保您不会看到任何内容,因为您没有告诉您的程序告诉您任何内容。 您告诉它在函数中返回值,但是要查看返回的值,您必须调用该函数。 例如,要查看您的返回值,请在您的窗口中调用该函数:

 document.getElementById("materialLoaded").addEventListener('input',materialCheck);

function materialCheck() {

if (this.checked) {
    return 1;
} else {
    return 0;
}

window.alert(materialCheck());
 }

javascript是面向对象的,您不能编写函数,它应该自己工作,必须调用它。 console.log之所以有效,是因为那里有一个对象,该对象是控制台,例如调用该函数或显示您要求的内容(例如:console.log(“ hello”))

,

您在评论中说,您想查看要检查的复选框数量。因此,将事件侦听器添加到复选框(或使用事件委托),然后检查以查看使用简单选择器选中的事件数量。

基本概念:

const wrapper = document.querySelector("#wrapper");

const validateCheckboxes = function() {
  const checked = document.querySelectorAll(".chk:checked");
  const isValid = checked.length === 3;
  wrapper.classList.toggle("valid",isValid);
};

wrapper.addEventListener("change",validateCheckboxes);
.valid {
  background-color: green;
}
<div id="wrapper">
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
  <input type="checkbox" class="chk" />
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。