使用逻辑OR运算符在if语句中进行多次比较不适用于JavaScript

Sri*_*vas 1 javascript

我正在检查以下方式,但它不起作用.当我使用单一陈述时它的工作.ie(NodeName!=="Active")

谢谢..

   function ClientCandidateMenuNodeClicked(sender, eventArgs) {
        var node = eventArgs.get_node();
        var NodeName=node.get_text();
        if( (NodeName !== "Active") || (NodeName !== "Recently Added") || (NodeName !== "Added") )
         {   
           if (NodeName != null)
           {
              alert(NodeName);
           }
        }
          node.toggle();
    }
Run Code Online (Sandbox Code Playgroud)

Jam*_*ice 5

你的逻辑错了.如果值NodeName"Recently Added"出现这种情况的第一件事是比较"Active"计算结果为true(因为它们是不一样的).因为第一个条件的计算结果为true,所以整个条件被认为是真的并且alert被执行.

你需要将你的"ors"改为"ands"(注意我也删除了所有这些括号......你在这里不需要它们):

if (NodeName !== "Active" && NodeName !== "Recently Added" && NodeName !== "Added") {
    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)