我正在检查以下方式,但它不起作用。当我使用单一陈述时,它正在发挥作用。即(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();
}
答案 0 :(得分:5)
你的逻辑错了。如果NodeName
的值为"Recently Added"
,则发生的第一件事是与"Active"
的比较,其评估为true
(因为它们不相同)。因为第一个条件的计算结果为true,所以整个条件都被认为是真的,并且alert
被执行了。
你需要将你的“ors”改为“ands”(注意我也删除了所有这些括号......你在这里不需要它们):
if (NodeName !== "Active" && NodeName !== "Recently Added" && NodeName !== "Added") {
// Do stuff
}
答案 1 :(得分:1)
NodeName 始终不是“活动”或不是“最近活动”或不是“已添加”。你想用
if (NodeName !== "Active" && NodeName !== "Recently Added" && NodeName !== "Added" && NodeName != null) {
alert(NodeName);
}
或
if (!(NodeName === "Active" || NodeName === "Recently Added" || NodeName === "Added") && NodeName != null) {
alert(NodeName);
}
答案 2 :(得分:-1)
试试这个
if( NodeName !== "Active" || NodeName !== "Recently Added" || NodeName !== "Added" ) {
alert(NodeName);
}