![](/img/trans.png)
[英]How do I get the value of the parent into its children function in JavaScript?
[英]How do I get my Javascript function to use its input value correctly?
我的 function 正確使用了 var vLevel 的第一個實例,但是當最后再次包含 vLevel 時返回錯誤的大值。 如果我用數字 50 替換第二個 vLevel,則 function 會返回正確的值。 現在僅出於測試目的將輸入值強制設置為 50。
這是我的輸入部分:
<th id='00'>Lv.<input id='iLevel' type='number' min='2' max='100' value= '50'></th>
相關變量定義:
var vLevel = document.getElementById('iLevel').value;
和 function:
function fHitPoints(baseStat, iv, ev, vLevel){
return Math.floor((((baseStat*2 + iv + Math.floor(ev/4))*vLevel)/100) + vLevel + 10);
}
所有其他變量工作正常。 如果有幫助,function 是以下循環的一部分:
var i = 0
var j = 0
while (j<17){
while (i<4){
if (i == 0) {
table.rows[i+1].cells[j+1].innerHTML =
fHitPoints(baseStat[j][i], iv[j][i], ev[j][i], vLevel);
i++;
} else {
table.rows[i+1].cells[j+1].innerHTML =
fStat(baseStat[j][i], iv[j][i], ev[j][i], vLevel, nature[j][i]);
i++;
}
}
i = 0
j++
}
fStat function:
function fStat(baseStat, iv, ev, vLevel, nature){
return Math.floor((Math.floor(((baseStat*2 +
iv + Math.floor(ev/4))*vLevel)/100) + 5)*nature);
弄清楚了。 fHitPoints 給出的值是 124,沒有 '+ vLevel + 10' 部分。 它實際上是取 124 + 50 + 10 並返回 1245010。我對編碼非常陌生,所以我對數據類型還不太了解。
出於某種原因,fStat 正確地進行了數學運算,但我想我可以從這里解決它。
在相關變量定義中:
var vLevel = document.getElementById('iLevel');
並在函數的調用中使用:
Number(vLevel.value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.