如果Javascript中有其他条件

时间:2011-06-06 14:40:00

标签: javascript

我将topdatedata值设为222

我指定了这3个条件

if((topDateData<250)&&(topDateData>25)) 
{
alert('one');
}

else if((topDateData>300)&&(topDateData<300)) 
{
alert('Two');
}

else
{
alert('Three');
}

我的问题是为什么它将值变为警报(3)而不是警报(一)?

5 个答案:

答案 0 :(得分:2)

当明确将值设置为222时,我会看到“一个”收到警报:http://jsfiddle.net/Wvjfa/

如果你愿意,你应该调试你的实际值(alert(topDateData);),看看它是否真的像你想象的那样。

除此之外,Matt Ball是对的,你的第二个条件是borked。另外,在您的问题与发布的代码之间不匹配的变量案例中,Lones和Kerry是正确的。

答案 1 :(得分:1)

Javascript区分大小写,是topdatedata = 222还是topDateData = 222

答案 2 :(得分:0)

看起来你的topDateData变量包含字符串值“222”而不是整数。

您可以尝试以这种方式转换为整数:

topDateData = parseInt(topDateData);

...

答案 3 :(得分:0)

设置一个值会更安全 - 因为你的第二个标准看起来很狡猾

var topDateData = 222;

if(topDateData > 300)
{
  alert('two');
}

else if(topDateData > 250)
{
  alert('');
}

else if(topDateData > 25)
{
  alert('One');
}

else
{
  alert('Three');
}

从最难满足的那个开始(在这个例子中是最高的),然后继续努力。它更容易遵循。除此之外它应该工作,按照这里的其他评论

答案 4 :(得分:0)

我的猜测是你有一个字符串。

var trueBool = '222' < '250'; //true
var falseBool = '222' > '25'; //false

要调试topDateData是否为String,请执行以下操作:

alert(topDateData + 1);//outputs '2221' if a string, and '223' if a number

Here显示出差异。

<强>更新

我已经测试了alert(('222' < 250) && ('222' > 25));并输出了true。但是,我不确定所有JavaScript编译器是否足够聪明,可以先将字符串转换为数字。您应该运行相同的测试,看看您的浏览器是否输出true