簡體   English   中英

如何讓我的 Javascript function 正確使用其輸入值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM