javascript - JS 变革者
问题描述
我的任务是用 JavaScript 编写一个 change maker 脚本,即使在查看了类似的情况(初级 JS 练习:Change Maker)之后,我也无法让这个东西工作。甚至从字面上纠正了另一篇帖子中的建议,但仍然没有。它很快就要到期了,我对这件事失去了理智。帮助!
我已经更新到我当前的 JS 代码
HTML
<body>
<main>
<h1>Change Calculator</h1>
<label>Enter amount of change due (0-99):</label>
<input type="text" id="cents" />
<input type="button" value="Calculate" name="calculate" id="calculate" /><br><br>
<label>Quarters:</label>
<input type="text" id="quarters" disabled><br>
<label>Dimes:</label>
<input type="text" id="dimes" disabled><br>
<label>Nickels:</label>
<input type="text" id="nickels" disabled><br>
<label>Pennies:</label>
<input type="text" id="pennies" disabled><br>
</main>
</body>
JavScript
var $ = function(id) {
return document.getElementById(id);
};
var makeChange = function(cents) {
var quarters = parseInt(cents / 25);
var dimes = parseInt(((cents - (quarters * 25)) / 10));
var nickels = parseInt(((cents - (quarters * 25)) - (dimes * 10)) / 5);
var pennies = parseInt(((cents - (quarters * 25)) - (dimes * 10))- (nickels * 5));
return cents;
};
var processEntry = function() {
var cents = parseInt($("cents").value);
if (!isNaN(cents) || cents < 100 || cents > 0) {
$("quarters").value = quarters;
$("dimes").value = dimes;
$("nickels").value = nickels;
$("pennies").value = pennies;
} else {
alert("Please enter a number between 0-99")
};
window.onload = function() {
$("calculate").onclick = processEntry;
$("cents").focus();
}; };
解决方案
processEntry 函数使用未定义的变量。
这应该会更好:
var processEntry = function() {
var cents = parseInt($("cents").value);
var quarters = Math.floor(cents / 25);
var dimes = Math.floor(((cents - (quarters * 25)) / 10));
var nickels = Math.floor(((cents - (quarters * 25)) - (dimes * 10)) / 5);
var pennies = Math.floor(((cents - (quarters * 25)) - (dimes * 10))- (nickels * 5));
// Your OR statements need to be AND statements
if (!isNaN(cents) && cents < 100 && cents > 0) {
$("quarters").value = quarters;
$("dimes").value = dimes;
$("nickels").value = nickels;
$("pennies").value = pennies;
} else {
alert("Please enter a number between 0-99")
};
我认为您期望的是 Math.floor 而不是 parseInt
推荐阅读
- powershell - 通过 powershell 脚本更改 Conda 环境(用于 Gitlab-CI)
- javascript - 导出chain promise的返回值
- git - 从工作树提交更改 .git/config 中的远程 url
- angular5 - 如何从ActivatedRoute以角度获取请求正文
- mysql - 使用 spring-boot 和 bitronix JTA 管理器将 XA 数据源配置为 mysql 8 DB 失败并出现 SqlException XAERR_RMERR
- c# - 'readonly' 修饰符是否会创建字段的隐藏副本?
- python - 如何将以下字典键转换为另一个键?
- javascript - 如何重新启动之前调用的屏幕并在本机反应中从后台堆栈中删除前一个屏幕?
- java - AnnotationProcessing - 在每一轮与最后一轮生成文件
- java - 如何更新 Stripe 中的客户默认付款方式?