Я пытаюсь выяснить, как использовать значения из вызова функции (Bmi
в BMI
) в рамках другой функции (HealthCat
), и я пытаюсь использовать полученные значения для выполнения потока управления, чтобы получить желаемый результат на моем html. Однако я не уверен, как использовать значения из вызова двойной функции. Помощь очень ценится! спасибо заранее!
Вот мой html:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/styles.css">
<title>BMI Calculator</title>
</head>
<body>
<h1>BMI Calculator</h1>
<p>
<label>Enter weight:</label>
<input type="text" id="weight" placeholder = "Enter your weight in kg">
</p>
<p>
<label>Enter height:</label>
<input type="text" id="height" placeholder="Enter your height in m">
</p>
<!--Display-->
<input type="button" onclick="BMI()" value="BMI"/>
<p id="result"></p>
<input type="button" onclick="HealthCat()" value="HealthCat"/>
<p id="Hresult"></p>
<script src="bmiScript.js"></script>
</body>
</html>
И вот мой javascript:
function BMI(){
var Weight = document.getElementById("weight").value;
var Height = document.getElementById("height").value;
var Bmi = Weight/(Height*Height);
document.getElementById("result").innerHTML = Bmi;
}
function HealthCat(){
BMI();
if(Bmi<18.50){
document.getElementById("Hresult").innerHTML="Under weight";
}else if (Bmi>18.5 && Bmi <23) {
document.getElementById("Hresult").innerHTML="Normal weight";
}else if (Bmi>23 && Bmi <27.5) {
document.getElementById("Hresult").innerHTML="Over weight";
}else if (Bmi>27.5) {
document.getElementById("Hresult").innerHTML="Obese";
}
}
Вы не можете использовать значение локальной переменной в одной функции из другой функции. Как только выполнение функции завершается, локальные переменные destroyed
и больше не могут использоваться. Чтобы использовать переменную Bmi
извне функции BMI
, вам нужно вернуть переменную, чтобы вызывающая функция могла ее использовать:
function BMI(){
var Weight = document.getElementById("weight").value;
var Height = document.getElementById("height").value;
var Bmi = Weight/(Height*Height);
document.getElementById("result").innerHTML =Bmi;
return Bmi; // Return the Bmi value.
}
function HealthCat(){
var Bmi = BMI(); // Use the returned Bmi value
if(Bmi<18.50){
document.getElementById("Hresult").innerHTML="Under weight";
}else if (Bmi>18.5 && Bmi <23) {
document.getElementById("Hresult").innerHTML="Normal weight";
}else if (Bmi>23 && Bmi <27.5) {
document.getElementById("Hresult").innerHTML="Over weight";
}else if (Bmi>27.5) {
document.getElementById("Hresult").innerHTML="Obese";
}
}