总计为0时隐藏<li> </li>

时间:2012-12-28 16:18:55

标签: javascript jquery jquery-mobile

我从MySQL通过JSON获取一些值并使用它们来做一些总计。

示例:

time_tot = time_st + time_mo;

然后我试着看看总数是否为0,否则我会做一些过程。但是,似乎当值为0时,IF的第一部分不起作用。另一方面,如果总数> 0,则其他工作正常。

if (time_tot == 0) { 
// hide image             
} else {
// do process
}

我尝试了以下各种选项,但似乎都没有:

if (time_tot == 0) 
if (time_tot === 0)
if (time_tot == "0")
if (time_tot === "0")

我还尝试将值更改为整数,但这也不起作用:

time_tot = parseInt(time_st + time_mo);
if (time_tot = 0) {

任何人都知道如何做到这一点或指出我在代码中遇到的任何问题?

更新:

HTML:

<li>Total Time: <span id="totalTime"></span>hrs</li>
<li class="imagePlaceholder"><div id="image"></div></li>  

JS:

if (time_tot == 0) { 
// hide image  
$('.imagePlaceholder').addClass('display_none');         
} else {
// do process
}

CSS:

.display_none { display:none; }

3 个答案:

答案 0 :(得分:0)

我建议将您的值解析为数字。 (根据您的代码示例,我假设您只期望整数值,而不是浮点数。)

var time_tot = parseInt(time_st, 10) + parseInt(time_mo, 10);

if (time_tot === 0) { 
  // show message           
} else {
  // do process
}

答案 1 :(得分:0)

由于某些原因,添加类display_none不起作用。

我通过将我的JS更改为以下内容解决了这个问题,并且它运行良好。问题与time_tot是否为0无关,而是IF之后的过程。

$('.imagePlaceholder').hide();

答案 2 :(得分:0)

分别解析整数。

var t1 = parseInt(time_st);
var t2 = parseInt(time_mot);

var time_tot = t1+t2;

if (time_tot === 0){
}

同样在你的代码中,你将变量写入if条件,确保你没有真正这样做。