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