我创建了一个小函数,它在表中添加一行。这很好用。但现在我的 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/