关于我之前的问题,我有一些图像(如果一个特定的图像有三个)是相同的,我想要出现一条消息,我遵循了上一个问题中的几个指导原则,但我仍然不能正常工作。
上一个问题:How to Make If statement for a specific Image source?
它总是打印else语句,即使x的3个图像出现,它只打印主要的消息,当y的3个图像出现(一次)或z时,同样的问题也会发生。任何帮助都将不胜感激。
新代码(Tad位):
function xyz() {
if((document.test.test1.src == document.test.test2.src && document.test.test2.src == document.test.test3.src ))
switch (document.test.test1.src == document.test.test2.src == document.test.test3.src) {
case "x":
document.test.banner.value =("3 for x")// Do stuff
break;
case "y":
document.test.banner.value =("5 for y")
break;
case "z":
document.test.banner.value =("8 for z")
break;
}
else
{
document.test.UserTokens.value=document.test.UserTokens.value-document.test.bet.value;
document.test.banner.value="No match - You lost ";
}
}发布于 2013-05-19 02:07:25
这里有一个问题:
switch (document.test.test1.src == document.test.test2.src == document.test.test3.src)Switch语句计算您放入括号中的值。您正在比较.src,因此它将返回一个布尔值,供开关进行计算,而不是返回您希望的字符串。不需要在交换机中比较它们,因为我们已经知道它们都是相同的。我们只需要知道他们中的一个。
其次,我发现您使用语法(a == b == c非常有趣。我做了一些测试,结果是这样的。它等同于((a==b)==c)。它从左到右求值。首先是(a==b),它将返回一个布尔值。然后将该布尔值与c进行比较,我猜您的"c“不是布尔值,因此它将始终返回false。
回顾你之前的问题
switch (document.test.test1.src) {
case 'y':
........
break;
case 'x'
........
break;
},正如dewd建议的那样,如果您决定坚持切换,似乎是一个合适的选择。
希望这能帮上忙。
https://stackoverflow.com/questions/16627073
复制相似问题