javascript - 无法从 javascript 获得答案以显示在 HTML 页面上
问题描述
作为练习,我一直在制作一个简单的 BMR/TDEE/BMI 计算器。我让 HTML 和 CSS 工作正常,但是,虽然我认为 Javascript 代码很好并且公式是正确的,但我无法从代码中获得结果以显示在我的计算器上。我希望我能对我做错了什么有所了解。
// Create variables
var height = document.getElementById("height").value / 39.37;
var weight = document.getElementById("weight").value / 2.205;
var activity = document.getElementById("activity").value;
var gender = document.getElementsByClassName("dataGender").value;
var age = document.getElementById("age").value;
//Calculate Tip
function calculateBMI(height, weight) {
//validate input
if (height === "" || weight == 0) {
alert("Please enter values");
return;
}
//Calculate BMI
var bmi = height / math.pow(weight, 2);
//round to two decimal places
bmi = Math.round(bmi * 100) / 100;
//next line allows us to always have two digits after decimal point
bmi = bmi.toFixed(2);
return bmi;
}
function calculateBMR(height, weight, age, gender) {
var bmr = null;
switch (gender) {
case "male":
bmr = 66.5 + (13.75 * weight) + (5.003 * height) - (6.755 * age);
break;
case "female":
bmr = 655.1 + (9.563 * weight) + (1.850 * height) - (4.676 * age);
break;
}
return bmr;
}
function calculateTDEE(bmr) {
var tdee = null;
switch (activity) {
case "Sedentary":
tdee = Math.round(bmr * 1.2);
break;
case "Light Exercise (1-2 days/week)":
tdee = Math.round(bmr * 1.375);
break;
case "Moderate Exercise (3-5 days/week)":
tdee = Math.round(bmr * 1.55);
break;
case "Heavy Exercise (6-7 days/week)":
tdee = Math.round(bmr * 1.725);
break;
case "Athlete (2x per day)":
tdee = Math.round(bmr * 1.9);
break;
}
return tdee;
}
function displayResults(bmi, bmr, tdee) {
//Display the results
document.getElementById("bmr").style.display = "block";
document.getElementById("bmr").innerHTML = bmr;
document.getElementById("bmi").style.display = "block";
document.getElementById("bmi").innerHTML = bmr;
document.getElementById("tdee").style.display = "block";
document.getElementById("tdee").innerHTML = tdee;
}
//click to call function
document.getElementsByClassName("butn").onclick = function() {
displayResults();
};
当我点击网页上的“计算”按钮时,它只显示一个空白块。帮助将不胜感激。谢谢你。
解决方案
推荐阅读
- php - 调用 Prestashop postProcess 方法
- android - 我可以在没有 Mac 的情况下编写 React Native 应用程序吗?
- django - Django 3:password_reset_email.html 中的 URL 格式错误
- php - 从数据库而不是会话中获取特定产品的数量 - 购物车(PHP 和 MySQL)
- mongodb - 获取 MongoDB 中每个字段的文档数,例如 Studio3T Schema 操作
- java - Maven 设置为忽略 `wsdl2java` 这是否会导致 Wildfly 在部署时出现高内存和慢启动?
- docker - 如何让 ngnix 在 docker 中运行以重新加载 nginx.conf 配置
- bluetooth - 如何使用蓝牙实现 AoA/currentLocation?
- c# - 附加到 URL 的 IdentityServer4 端点跳过端口地址
- python-3.x - 为什么我不能在 python3 子进程中使用导出的 bash 函数?