2014-10-31 89 views
-2

我想用Javascript编写一个HTML页面来做一个小游戏。 我有很多s,每次点击时都会向javascript发送一个不同的变量。 现在的问题是,我想排除一些功能,应该适用于每一个,除了被排除在外。HTML/JavaScript“if!=”不起作用

我写的是这样的:

if (pressedKey != "Leertaste" || "Enter" || "StrgR" || "Alt" || "AltGr" || "Tab" || "ShiftL" || "StrgL" || "ShiftR"){ 
    document.getElementById(pressedKey).innerHTML = "<img src=\"push1.png\">" 
} 

但它不工作..它仍然触发功能,虽然pressedKey是被排除者之一..

我希望有人可以提供帮助。

3m7ecc

+1

是的,你不能像这样链接'||'它不是它的工作原理。寻找愚蠢。 – 2014-10-31 13:32:21

+1

与JS,它会是'如果(a!== 1 || a!== 2 || a!== 3)'等 – ndugger 2014-10-31 13:32:29

+0

值得一提 - 写作“我希望有人可以帮助.3m7ecc”是多余的的问题。希望愚蠢的帮助和快乐的编码! – 2014-10-31 13:33:53

回答

2

我认为它应该是但林不知道,试试吧:)请:

pressedKey != "Leertaste" || pressedKey != "Enter" || pressedKey != "StrgR" || pressedKey != "Alt" || pressedKey != "AltGr" || pressedKey != "Tab" || pressedKey != "ShiftL" || pressedKey != "StrgL" || pressedKey != "ShiftR" 

正如你们许多人说我使用了错误的分隔符,但是这一次是在问题,所以我猜他需要这个。不过说实在的,他需要:

pressedKey != "Leertaste" && pressedKey != "Enter" && pressedKey != "StrgR" && pressedKey != "Alt" && pressedKey != "AltGr" && pressedKey != "Tab" && pressedKey != "ShiftL" && pressedKey != "StrgL" && pressedKey != "ShiftR" 
+0

噢,好吧,我看到我的错误.. 谢谢! 编辑:但它似乎仍然无法正常工作.. – 3m7ecc 2014-10-31 13:35:32

+2

您的表达将始终评估为true,因为您将同一变量同时与两个不同的值进行比较,并使用OR运算符。例如,如果你有一个var X和表达式'if(X!= 1 || X!= 2)',即使X == 1,你的表达式也将是真的,因为X!= 2。你应该用&&代替|| – gabitzish 2014-10-31 13:45:40

1

@ Deer-Outdoor.nl的答案是接近直角(使用了错误的操作),如果不雅(没有犯罪!)。您也可以将所有值放入数组中,并检查pressedKey是否在该数组中。

var keys = ["Leertaste", "Enter", "StrgR", "Alt", "AltGr", "Tab", "ShiftL", "StrgL", "ShiftR"]; 

if (keys.indexOf(pressedKey) === -1) { 
    //pressed key is not in array 
} else { 
    //pressed key is in array 
} 

或者你可以使用switch语句:

switch(pressedKey) { 
    case "Leertaste": 
    case "Enter": 
    case "StrgR": 
    //...other cases... 
     //pressed key is in those values 
     break; 
    default: 
     //pressed key is NOT in those values 
     break; 
} 

他们几乎等同,它的样式的所有问题。

+0

谢谢! 虽然这很奇怪,但这个工作,但@ Deer-Outdoor.nl的没有。 – 3m7ecc 2014-10-31 13:44:30

+0

嗯,当然。查看@ gabitzish对另一个答案的评论,使用了错误的操作符。我也没有看到它。 :) – SolarBear 2014-10-31 13:52:27

+1

@SolarBear更新了答案。我的回答是基于他认为他需要的,所以这就是为什么我离开了|| (或)运营商英寸更新我的答案tho :) – Refilon 2014-10-31 14:16:43