2017-07-19 46 views
0

比方說,我有一些HTML,上面寫着:如何解析按鈕ID中的整數?

<input type = "button" id = "start4" value="Start 4x4 Game" onClick="gameStart(this.id)"/> 

而且我想在年底解析出一個4基於按鈕的ID改變功能的作用在JavaScript中,理想start4到parseInt。然而,我嘗試了這一點,並且永遠無法解析一個整數值。我通過將它放入一個警報按鈕來測試它,它只是向我吐出NaN。我真的很想知道我做錯了什麼。

+3

請不要這樣做。要麼直接用'4'代替'this.id',要麼包含'data-dimension =「4」',這樣你就可以很容易地檢索到這個值。 –

+0

我真的不敢相信我沒有想到簡單地使用數字作爲參數。我想我需要回到補救編程! – JLH

回答

0

假設你的ID遵循start[number]相同的格式,然後在你的gameStart功能,可以這樣說:

function gameStart(id) { 
    var result = /[0-9]/.exec(id); 
    if (result) { 
     result = parseInt(result[0]); 
    } else { 
     return false; 
    } 

    ... 
} 

然後你就可以在你的gameStart功能使用result。在這種情況下,它將是4

代碼故障:

var result = /[0-9]/.exec(id);分配result在你的字符串正則表達式搜索的數字(這是start4)。

if (result) {檢查的正則表達式搜索竟然發現一個數字,如果是的話,繼續前進,如果沒有,放棄功能。

result = parseInt(result[0]);正則表達式搜索返回的結果的陣列,該陣列是所述實際發現字符串中的第一個元素。因此,我們將result分配給數組中的第一個元素,然後應用parseInt()將該字符串轉換爲數字。

0

最佳的方式來存儲這樣的事情在data屬性。但是,你可以通過正則表達式來解析id以獲得最後一個數字。

var number = parseInt(this.id.match(/\d+$/)[0])

確保檢查比賽[0]不是不確定的。