我有这个
我正在做这个
function CheckLevel() {
var PlyLevel = parseFloat(document.getElementById("player_level").innerHTML);
return PlyLevel
}
alert(CheckLevel());

<div id="player_level">level 338</div>
&#13;
然后回来
NaN
我做错了什么?
答案 0 :(得分:1)
在您的情况下,字符串不以数字开头,因此它将始终返回NaN
。
如果第一个字符无法转换为数字,则parseFloat返回NaN。 (摘自documentation)。
因此使用正则表达式获取浮点值并解析它。match(/\d+(?:\.\d+)?/)
将匹配字符串中的任何浮点值。
function CheckLevel() {
var PlyLevel = parseFloat(document.getElementById("player_level").innerHTML.match(/\d+(?:\.\d+)?/)[0]);
return PlyLevel
}
alert(CheckLevel());
&#13;
<div id="player_level">level 332.3</div>
&#13;
<强> Regex explanation here 强>