html
我首先将重量(以磅为单位)转换为千克将其乘以kgval,然后将其重量除以高度的价值,如下所示(((kgs/hefterinmts)/hefterinmts)。指示1.将您的体重(kg)除以米(m)的高度2.然后再次将答案除以您的高度以获取BMI。
<h1>BMI calculator</h1>
<div class="contact-clean">
<form method="post" id="formOne">
<div>
<p>Feet</p>
<input type="number" id="feetInput" class="form-control col-2"/>
</div>
<div>
<p>Inches</p>
<input type="number" id="inchesInput" class="form-control col-2"/>
</div>
<div>
<p>Weight in pounds</p>
<input type="number" id="weightInput" class="form-control col-2"/>
</div>
<button id="calculate" class="btn btn-primary" type="button">Calculate</button>
</form>
<p id="result"></p>
<a href="#" class="recalculate hidden">Calculate again!</a>
</div>
JS
var lbs = document.getElementById('weightInput');
var feetInput = document.getElementById('feetInput');
var inchesInput = document.getElementById('inchesInput');
var bmi;
var weight;
var kgVal;
var feet = parseInt(feetInput.value);
var inches = parseInt(inchesInput.value);
var resultOutput = document.getElementById('result');
var calculate = document.getElementById('calculate');
var heightInMts = parseInt(feet / 3.281);
resultOutput.setAttribute('style','display:none');
var form = document.getElementById('formOne');
var recalculateLink = document.querySelector('a.hidden');
calculate.addEventListener('click', compute);
function compute(){
feet = parseInt(feetInput.value);
inches = parseInt(inchesInput.value);
weight = parseInt(lbs.value);
kgVal = 0.453592;
var kgs = weight * kgVal;
var totalInches = feet * 12 + inches;
bmi = (kgs / heightInMts / heightInMts);
// Hide the form
form.setAttribute('style','display: none');
resultOutput.innerHTML = 'Your BMI is ' + bmi;
resultOutput.setAttribute('style', 'display: block');
recalculateLink.setAttribute('style', 'display: block');
}
// Reopen the form and clear all fields
recalculateLink.addEventListener('click', function () {
form.setAttribute('style','display: block');
recalculateLink.setAttribute('style', 'display: none');
feetInput.value = '';
inchesInput.value = '';
lbs.value = '';
resultOutput.innerHTML = '';
});
我得到的价值是nan。有人可以告诉我我在做什么错吗计算。谢谢。
nan in JavaScript中的nan是在您尝试对两个不是数字的操作数进行数学操作时,无法转换为数字
,例如
1 - "a" = NaN
1 * "a" = NaN
1 / "a" = NaN
由于在这些情况下,JS无法将字符串" A"转换为一个数字并给出NAN。
有关NAN的更多信息,请在
上检查MDN文档https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/nan
使用包装纸
let x = function( i) {
let r = parseInt( i);
if ( isNaN( r)) {
return 0;
}
return r;
}
x('fart'); // result 0