如果在JS

时间:2016-11-10 21:18:01

标签: javascript

我试图在满足三个条件时显示图像但我只显示了宝马图像。我似乎无法理解为什么其他人如果不起作用,也许只是看了很长时间。搜索了另一种方式,但没有找到。

var name = prompt("Hello there, what's your name?");
var car = new Array("BMW", "Maserati");
var randomCar = Math.floor(Math.random()*car.length);
var carName = car[randomCar];

if(name === "Frank" || name === "Chris" && carName === "BMW") {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + " you have won a " + carName + "<br><br>" + "<img src='img/bmw.jpg' alt='BMW Pic' style='border-radius: 10px;'</h1>";
} else if (name === "Frank" || name === "Chris" && carName === "Maserati") {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + " you have won a " + carName + "<br><br>" + "<img src='img/maserati.jpg' alt='Maserati Pic' style='border-radius: 10px;'</h1>";
} else {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + ", no car for you today !!" + "<br><br>" + "<img src='img/pitbull-sad-face.jpg' alt='Dog sadface' style='width: 70%; border-radius: 20px;'</h1>";
};

2 个答案:

答案 0 :(得分:1)

newname声明中的测试表达式:

if

的评估方式如下:

(name === "Frank" || name === "Chris" && carName === "BMW")

即,(name === "Frank" || (name === "Chris" && carName === "BMW")) 部分被评估,如果名称是&#34; Frank&#34;那么测试将成功。 如果名称是&#34; Chris&#34;汽车名称是&#34;宝马&#34;。如果名字是&#34; Frank&#34;,那么汽车名称并不重要;只有当名字是&#34;克里斯&#34;。

时才重要

如果您希望名称始终重要,则必须明确括起名称的两个测试:

&&

现在它只有在名称是&#34; Frank&#34;或&#34;克里斯&#34; 如果汽车名称是&#34;宝马&#34;。

答案 1 :(得分:1)

这是您的操作顺序。发生了什么事情,当您真正想要if frank, or if Chris+BMW时,您的逻辑会说if Frank+BMW or if Chris+BMW。将括号括在or||)部分周围。

if((name === "Frank" || name === "Chris") && carName === "BMW") {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + " you have won a " + carName + "<br><br>" + "<img src='img/bmw.jpg' alt='BMW Pic' style='border-radius: 10px;'</h1>";
} else if ((name === "Frank" || name === "Chris") && carName === "Maserati") {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + " you have won a " + carName + "<br><br>" + "<img src='img/maserati.jpg' alt='Maserati Pic' style='border-radius: 10px;'</h1>";
} else {
  document.getElementById("name").innerHTML = "<h1>Hello " + name + ", no car for you today !!" + "<br><br>" + "<img src='img/pitbull-sad-face.jpg' alt='Dog sadface' style='width: 70%; border-radius: 20px;'</h1>";
};

现在,弗兰克将永远得到一辆宝马,因为第一个if声明是真的,因为name==="Frank"