0

我敢肯定这是一个简单的答案,我只是想不通!

我需要检查一个变量是否等于多个事物:

if ((dls == '10:0') && (dls == '10:3') && (dls == '11:0') && (dls == '11:3')){
    stamp = 'PM';
};

测试页面: http: //pmf.v5.cloudsvr.com.au/-artists/axle

您会看到警报触发,并且 DLS == 11:3 在警报中,但标记仍然等于上午而不是下午。

谢谢你的帮助。

*编辑:我使用了错误的运算符!*

if ((dls == '10:0') || (dls == '10:3') || (dls == '11:0') || (dls == '11:3')){
        stamp = 'PM';
};
4

6 回答 6

3

使用||代替&&

if ((dls == '10:0') || (dls == '10:3') || (dls == '11:0') || (dls == '11:3')){
    stamp = 'PM';
};

dls不能是所有这些值..它将是这些值中的任何一个..所以你需要使用||(或运算符)而不是&&(和运算符)

于 2012-10-05T16:52:05.703 回答
3

您想要||运算符,Your condition will not be true as using &&带有 && 的 if 语句要求所有给定条件都为真,这意味着 dls 应该一次在变量中具有 10:0、10:3、11:0 和 11:3 值,但变量可以具有其中之一一次

改变

if ((dls == '10:0') && (dls == '10:3') && (dls == '11:0') && (dls == '11:3')){
    stamp = 'PM';
};

if ((dls == '10:0') || (dls == '10:3') || (dls == '11:0') || (dls == '11:3')){
    stamp = 'PM';
};
于 2012-10-05T16:51:47.873 回答
2

我想你可能打算使用 || (OR) 而不是 && (AND):

if ((dls == '10:0') || (dls == '10:3') || (dls == '11:0') || (dls == '11:3')){
    stamp = 'PM';
};
于 2012-10-05T16:54:51.257 回答
2

首先,您使用了错误的运算符..尝试使用||而不是&&

你也可以试试这个方法

var arr = ['10:0' , '10:3' , '11:0' , '11:3']
var dls = '10:1';

if ( arr.indexOf(dls) != -1){
    stamp = 'PM';
}
else{
   alert('Not PM')
}
于 2012-10-05T16:58:06.863 回答
1

尝试这个:

现场演示:http: //jsfiddle.net/oscarj24/MS8V8/1/

val = $.grep(["10:0", "10:3", "11:0", "11:3"], function(n){ if(n === dls) return n; });
if(val[0] === dls) stamp = "PM";

alert(stamp);
于 2012-10-05T17:04:04.007 回答
-1

Shorter version:

if (dls == ('10:0'||'10:3'||'11:0'||'11:3')){
    stamp = 'PM';
};
于 2019-12-15T14:54:24.017 回答