我创建了一个在表中添加行的小函数。这很好用。但现在我对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);
}
答案 0 :(得分:3)
只需使用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;
}
您的代码中的代码块(虽然这是错误的)。
答案 1 :(得分:1)
你可以使用以下语法来获取它...它总是使用undefined和Nan但是在浮动时会失败。
+ tdt || 0