在尝试创建一个基本计算器时,遇到了一个令人费解的问题:“clear()”分配了 onclick="clear()" 属性的“按钮无法执行其清除文本字段的预期功能。
谜团存在于 JavaScript 的内在事件属性中,例如 onclick。这些属性使用 with 语句,这是一种不鼓励的做法,因为它可能会造成混乱和兼容性问题。因此,onclick="clear()" 属性无意中调用了 document.clear(),而不是预期的全局函数clear()。
要解决此问题,可以重命名 clear 函数或显式调用 window.clear() 。清除()。然而,更好的解决方案是使用 addEventListener 进行事件绑定,这可以避免使用内部事件属性。
以下代码示例演示了使用 addEventListener 的正确实现:
<script> const clearButton = document.querySelector('input[value="C"]'); clearButton.addEventListener('click', clear); function clear() { document.getElementById("field").value = ""; } </script>
以上是为什么 `onclick='clear()'` 在 JavaScript 中不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!