Javascript:无法将字符串与数字进行比较

时间:2014-01-23 08:05:24

标签: javascript jquery

我从div&试图与if条件进行比较,但每次都以错误的方式执行,为什么?请帮帮我

示例:W.r.t我的代码我将totalcount值设为2,但它再次进入if块,它不应该去

我的代码:

var totalcount=$("#itemLocationGrid").jqGrid('getGridParam', 'records');//gives value 2
 Number(totalcount);

 if(totalcount===0);
   {  //every time it executes. why?
    alert("No item locations found to perform this ADD action."); 
    return false;
   }

3 个答案:

答案 0 :(得分:5)

这是分号......

if(totalcount===parseInt(0)  || totalcount == "0" || totalcount == 0);
// ...here ----------------------------------------------------------^

该分号终止if语句;接下来的是一个的块,以if为条件。您要删除它,以便该块与if

相关联

如果你想要totalcountjqGrid中的数字作为字符串返回值(我不知道它确实如此,但如果它那么),以及特别是你想要一个整数(“整数”),这是你得到它的方式:

var totalcount = parseInt($("#itemLocationGrid").jqGrid('getGridParam', 'records'), 10);
// Parse it -----^ and use a radix (number base) ---------------------------------^^^^

完成后(或jqGrid给你一个字符串),这就是你比较它的方式:

if (totalcount === 0)
{
    // Do something because it's zero
}

使用==也可以。不同之处在于,===不会强制使用类型来匹配,==会(例如,"0" == 0为真,但"0" === 0为假)。

答案 1 :(得分:1)

您需要删除if条件的分号。你也不需要使用号码。当您获得记录时,您获得的totalcount已经是整数格式( See this )。代码看起来像这样。

var totalcount=$("#itemLocationGrid").jqGrid('getGridParam', 'records');//gives value 2
if(totalcount===0)
  {  //every time it executes. why?
   alert("No item locations found to perform this ADD action."); 
   return false;
 } 

答案 2 :(得分:0)

试试这个:

不需要其他条件

 if(totalcount===parseInt(0)  || totalcount == "0" ||)

您的代码:

if(totalcount == 0)// also remove ; here
       { 
        alert("No item locations found to perform this ADD action."); 
        return false;
       }