javascript - 如果语句在 Javascript 中无法正常工作
问题描述
我编写了一个程序,该程序应根据用户的年龄输入显示饮料图像或警报窗口。问题是,无论提交什么值,它都只执行语句的“if”部分。在执行之前没有检查任何其他条件。我尝试使用带有元素 ID 的 getElementById 代替 querySelector,但程序根本没有运行。我尝试了带有按钮标签的 querySelector 以及输入标签。那也没有用。
function strt() {
let theButton = document.getElementById('aButton');
theButton.addEventListener('click', verifyAge);
}
function verifyAge() {
let patronAge = document.querySelector('age');
let primaryImg = document.getElementById('mainImg');
if (patronAge < 21) {
primaryImg.src = 'images/cola.jpg';
} else if (patronAge >= 21) {
primaryImg.src = 'images/tallboy.jpg';
} else if (patronAge <= 0) {
alert('Please enter a valid number:');
} else if (patronAge == NaN) {
alert('That is not a valid number. Please try again.');
}
}
window.addEventListener('load', strt);
<img src="images/bar&grill.png" alt="barandgrill" id="mainImg">
<br>
<form>
<label for="age">Please enter your age:</label>
<input type="text" id="age" required>
<button id="aButton" type="button">Get Drinks</button>
</form>
解决方案
而不是这样写:
let patronAge = document.querySelector('age');
你应该写下以下内容:
let patronAge = parseInt(document.querySelector('#age').value);
您的方法存在一些问题。
querySelector('age')
寻找带有标签的元素age
,这不存在。由于您正在使用querySelector
您需要指定一个#
符号来搜索一个 id。- 您需要访问 HTMLElement 的值
- 您需要将值解析为数字
推荐阅读
- javascript - 使用 `value` 键并在条件 `classname` React 中使用
- windows - 如何使用批处理脚本根据.txt文件内容将文件复制到不同的地方
- curl - 无法在 AWS API Gateway 上执行 POST 请求
- java - Java中非均匀分布的随机数生成
- excel - Outlook .VotingOptions = 不再工作
- python - Python Pandas - 从网站读取数据的问题
- css - 在 grid-template-rows 中使用 auto-fill 或 auto-fit: repeat(auto-fill, 200px) 只设置第一行的高度 - 为什么会这样?
- flutter - 如何使用 ChangeNotifier & Provide 或 BLOC 将整数值从一个地方获取到另一个地方?
- c# - 逐页获取谷歌联系人c#
- javascript - HTTP Post 请求已取消