javascript - 如何在 onclick 事件上激活“if”条件
问题描述
我似乎无法弄清楚为什么我的“if”部分函数在 onclick 事件上不起作用。我正在尝试使一个函数在 HTML 中的 onclick 上执行,它会执行它,但结果我总是得到“未定义”......
我的 HTML 是:
<button type="button" id="n1" class="btn btn-secondary btn-decor" onclick="pressNumber()">1</button>
<button type="button" id="n2" class="btn btn-secondary btn-decor" onclick="pressNumber()">2</button>
和 Javascript
var displayedValue = document.getElementById("calc-disp").textContent;
var fullNumber;
function pressNumber () {
if (document.getElementById("n1")) {
var fullNumber = displayedValue + numbers[1];
}
else if (document.getElementById("n2")) {
var fullNumber = displayedValue + numbers[2];
}
displayValueNow();
}
// display result
function displayValueNow () {
document.getElementById("calc-disp").innerHTML = fullNumber;
}```
thanks for any advice
解决方案
而不是使用 if 语句,只需将按钮编号作为参数传递给函数并在计算中使用它。
const numbers = [0, 1, 2];
// Cache only the element
const displayedValue = document.getElementById('calc-disp');
function displayValueNow(fullNumber) {
displayedValue.textContent = fullNumber;
}
function pressNumber(n) {
// Make sure you coerce your displayed value (a string) to
// an integer before trying to add it to the number in the array
var fullNumber = Number(displayedValue.textContent) + numbers[n];
// Pass in `fullNumber` as an argument to `displayValueNow`
// so you're not using a global variable
displayValueNow(fullNumber);
}
<button type="button" onclick="pressNumber(1)">1</button>
<button type="button" onclick="pressNumber(2)">2</button>
<div id="calc-disp"></div>
推荐阅读
- javascript - 将单个单元格的值添加到通过谷歌脚本写入的数组的第一行
- function - Emacs Lisp 可以将 lambda 形式分配给像 Scheme 这样的变量吗?
- javascript - 如何使用没有 ID 的 javascript 修改 HTML 内容?
- javascript - TypeError:无法读取 null 的属性“insertSlide”(第 60 行,文件“代码”)
- flutter - 颤振:onTap 未在自定义绘画小部件顶部的手势检测器上触发
- yii2 - 如何在 YII2 中制作这样的网址?
- javascript - 如何在 THREE.js 中加载本地图像?
- node.js - 部署 MERN 堆栈应用程序的问题
- c++ - 在 C++ 中迭代 2D 容器的最简洁方法
- python - 答案表示的注意力机制 - Keras 层