javascript - 构建计算器,获取无法设置属性“值”为空
问题描述
我正在构建一个计算器,但我一直收到此错误,我尝试了几种不同的方式输入它,但我无法弄清楚,请帮助!
const calculator = {
displayValue: '0',
firstOperand: null,
waitingForSecondOperand: false,
operator: null,
};
function updateDisplay() {
const display = document.querySelector('.calculator-screen');
display.value = calculator.displayValue;
}
updateDisplay();
我得到了错误
display.value = calculator.displayValue;
这是文件的 html
<div class="calculator">
<input type="text" class="calculator-screen" value = "0" disabled />
<div class="calculator-keys">
<button type="button" class="operator" value="+">+</button>
<button type="button" class="operator" value="-">-</button>
<button type="button" class="operator" value="*">×</button>
<button type="button" class="operator" value="/">÷</button>
解决方案
该错误意味着这一行:
const display = document.querySelector('.calculator-screen');
正在返回 null。所以当你这样做时:
display.value = calculator.displayValue;
你真的是在说:
null = calculator.displayValue;
尝试记录值并自己检查:
function updateDisplay() {
const display = document.querySelector('.calculator-screen');
console.log('display: ', display); // this is probably 'null'
display.value = calculator.displayValue;
}
我猜你的 class 没有选择器.calculator-screen
。仔细检查拼写或发布相关的 HTML,以便我确认。
这是你的代码,它似乎工作正常我没有收到错误,所以我不确定你到底发生了什么:
const calculator = {
displayValue: '0',
firstOperand: null,
waitingForSecondOperand: false,
operator: null,
};
function updateDisplay() {
const display = document.querySelector('.calculator-screen');
display.value = calculator.displayValue;
}
updateDisplay();
<div class="calculator">
<input type="text" class="calculator-screen" value = "0" disabled />
<div class="calculator-keys">
<button type="button" class="operator" value="+">+</button>
<button type="button" class="operator" value="-">-</button>
<button type="button" class="operator" value="*">×</button>
<button type="button" class="operator" value="/">÷</button>
</div>
</div>
推荐阅读
- django - 在 Django Admin 更改表单中编辑具有自身关系的多对多内联字段
- css - 如何在 Angular 7 的嵌套 mat-menu 上添加类?
- linux-kernel - 进程 blk_mq_run_work_fn 期间工作队列挂起
- amazon-web-services - 物联网核心和数据传输成本核算:Http 操作与 Vpc Apache Kafka 操作
- ruby-on-rails - CableReady Stimulus Reflex:redis webpacker rails 失去连接。在 localhost:6379 上连接到 Redis 时出错 (Redis::TimeoutError)
- android - RecyclerView 无法处理 Fragment | 科特林 | 火力基地
- two.js - 如何为 two.js 获得更好的线条绘制性能
- javascript - 是否可以将键:值对动态添加到 JS 对象?
- asp.net - 对现有 MVC 项目实施 Web API 身份验证,无需身份验证
- excel - 根据另一列中的数字将单元格数据移动到相应的行