假设我有一些html说:
<input type = "button" id = "start4" value="Start 4x4 Game" onClick="gameStart(this.id)"/>
我想根据按钮的ID更改javascript中函数的动作,理想情况是通过parseInt解析start4末尾的4。然而,我试过这个,并且永远无法解析整数值。我通过将它放入警报按钮测试它,它只是向我吐出NaN。我真的很想知道我做错了什么。
答案 0 :(得分:0)
假设您的ID遵循start[number]
相同的格式,那么在您的gameStart函数中,您可以这样:
function gameStart(id) {
var result = /[0-9]/.exec(id);
if (result) {
result = parseInt(result[0]);
} else {
return false;
}
...
}
然后,您可以在result
功能中使用gameStart
。在这种情况下,它将是4
。
代码细分:
var result = /[0-9]/.exec(id);
将result
分配给正则表达式搜索字符串中的数字(start4
)。
if (result) {
检查正则表达式搜索是否实际找到了一个数字,如果是,则继续,如果没有,则中止该功能。
result = parseInt(result[0]);
正则表达式搜索返回结果数组,数组中的第一个元素是实际找到的字符串。因此,我们将result
分配给数组中的第一个元素,然后应用parseInt()
将该字符串转换为数字。
答案 1 :(得分:0)
在data
属性中存储此类内容的最佳方式。但是,您可以通过正则表达式解析id以获取最后一个数字。
var number = parseInt(this.id.match(/\d+$/)[0])
确保检查匹配[0]未定义。