使用AND if语句的多个条件,javascript

时间:2017-10-31 10:10:08

标签: javascript if-statement multiple-conditions

有人能告诉我这个 if 声明有什么问题吗?

如果我自己使用两个主要条件中的任何一个,那么该语句可以正常工作,但是当我添加中间&&声明,它停止工作。我在网上搜索过,看不出有什么问题。

P.S 即可。我甚至可以将中间的&& 更改为 || 语句,它也能正常工作。我很困惑。

if ((containerId.id == "LineOne" && dropLoc == "dropLocation1.1") && (containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"))
        {
            alert("finished");
            cdpause();      
        }

4 个答案:

答案 0 :(得分:3)

  

我在网上搜索过,看不出有什么问题请帮忙! :)

     

我甚至可以改变那个中间&&到||声明,它也适用

因为containerId.id不能同时为LineOneLineTwo

同样,dropLoc无法同时拥有两个值。

但它可以包含两个值之一,因此请将&&替换为||

   if ((containerId.id == "LineOne" && dropLoc == "dropLocation1.1") || 
       (containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"))
   {
        alert("finished");
        cdpause();      
   }

答案 1 :(得分:0)

您可以使用OR组合两个检查,因为,您不能同时拥有两个不同的值。

除此之外,您不需要括号,因为operator precedence logical AND &&超过logical OR ||

if (
    containerId.id == "LineOne" && dropLoc == "dropLocation1.1" ||
    containerId.id == "LineTwo" && dropLoc == "dropLocation2.2"
) {
    alert("finished");
    cdpause();      
}

答案 2 :(得分:0)

像Satpal说的那样

 if(containerId.id == "LineOne" && dropLoc == "dropLocation1.1") || (containerId.id == "LineTwo" && dropLoc == "dropLocation2.2")

答案 3 :(得分:0)

你已经有了正确的解决方案,你应该有一个 || (或)而不是&& (和)。

它是基本的布尔逻辑:你有两个带有“和”的表达式,并且如果其中任何一个表达式为真,你想要执行你的代码,所以你用“或”加入这些表达式。

“如果名字是约翰,那是星期一,或者名字是简,而且是星期二,那么请提醒他们购买杂货。” =>周一,约翰轮到去购物,周二是Jane的。