我想将数组 userInfo 中的值用作 getBMR 函数中的参数。我该怎么做?
function userInput() {
var gender = document.querySelector('input[name="gender"]:checked').value;
var length = document.getElementById('length').value;
var weight = document.getElementById('weight').value;
var age = document.getElementById('age').value;
if (length || weight || age === (strValue)) {
length = parseInt(length);
weight = parseInt(weight);
age = parseInt(age);
var userInfo = [gender, length, weight, age];
return userInfo;
}
}
function getBMR(gender, length, weight, age) {
// ...
}

谷歌搜索疯狂,但我似乎无法找到解决方案。在数组声明后使用 console.log 我可以清楚地看到数组存储数据。我的问题是将这些数据放在函数之外。
这是我的HTML:
<html>
<head>
</head>
<body>
<form action="">
<input type="radio" name="gender" id="gender" value="male" checked="checked">Man<br>
<input type="radio" name="gender" id="gender" value="female">Kvinna<br>
<label>Längd</label>
<input type="number" id="length"></input>
<label>Vikt</label>
<input type="number" id="weight"></input>
<label>Ålder</label>
<input type="number" id="age"></input>
<button onclick="userInput()">Hämta BMR</button>
</form>
<p id="dittBMR"></p>
</body>
</html>
&#13;
真的很感谢我能得到的所有帮助!
谢谢!
答案 0 :(得分:0)
如果您的参数一致且列表不需要是动态的,您应该能够:
function getBMR(userInput()[0], userInput()[1], userInput()[2], userInput()[3]) {
// ...
}
答案 1 :(得分:0)
问题在于,当您声明了var时,其范围仅在函数完成执行之前。因此,我认为更好的方法是为您需要的参数提供单独的功能。类似的东西:
function getLenght() {
return document.getElementById('length').value;
}
因此,无论何时调用getBMR,您都应首先声明并分配其他变量,如下所示:
var length = getLength() ;
getBMR(length,...) ;
而且,更好的方法是使用jQuery:
$. ("#length").val();
这将返回输入的值。
希望这会有所帮助。