jQuery - parseInt() 总是返回 NaN

标签 jquery nan parseint

我创建了一个小函数,它在表中添加一行。这很好用。但现在我的 parseInt() 部分遇到了问题。

表的第一行包含一个 ID,这将我带到 if 子句。那么好,那么好。 但在第二次运行中,它会警告 1,但将其用作字符串并以 NaN 进行响应。

那么,我的问题出在哪里?

function AddFlas(){
    if($(".Flasvalues").is(":hidden")){
        $(".Flasvalues").slideToggle(300);
    }

    var par = $("#Flastable tr:last");
    var tdt = par.children("td:nth-child(1)").text(); 
    tdt = parseInt(tdt,10);
    alert(tdt); // First run: ID, Second: 1, Third: 1
    if (tdt != "NaN"){
        alert("is NaN");
        tdt = 0;
    }
    tdt++;
    alert(tdt);
    $("#Flastable tbody").append(
        "<tr>"+
        "<td>"+tdt+"</td>"+
        "<td><input name='Flas' type='text'></td>"+
        "<td><input name='Flaskgm' type='number' min='0' step='any'></td>"+
        "<td align='center'><img src='styles/save.png' class='btnSaveFlas'><img src='styles/trash.png' class='btnDeleteFlas'></td>"+
        "</tr>");

    addPointer();
    $(".btnSaveFlas").bind("click", SaveFlas);      
    $(".btnDeleteFlas").bind("click", DeleteFlas);              
}

最佳答案

只需使用isNaN(),如下所示:

而不是

if (tdt != "NaN"){

尝试

if (isNaN(tdt)){

或者尝试

tdt = parseInt(tdt,10) || 0;  //if 'paresInt()' fails to parse value in int it will return 0

如果您使用第二个答案,则无需

if (tdt != "NaN"){
    alert("is NaN");
    tdt = 0;
}

代码中的代码块(尽管这是错误的)。

关于jQuery - parseInt() 总是返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25971486/

相关文章:

python - 如何从 apply 返回格式正确的 pandas 数据框?

java - 在 Java 中生成 NaN 的方法综合列表?

javascript - 从 Javascript 中的数字中删除前导零

javascript - 附加到特定 Div 的粘性标签

javascript - 如何避免 JQuery 日期选择器的时区问题

javascript - 如何在 knockout 和组件之间应用过渡效果

我的 javascript/jquery 代码存在 JavaScript NaN 问题

javascript - ParseInt() 奇怪的八进制行为

javascript - 以下 Javascript 数组场景中 parseInt() 和 Number.isInteger() 之间的功效差异?

javascript - 使用 JQuery 隐藏 sibling 和 parent 的 sibling 直到给定的 id