我开始学习Javascript,并且在我的第一个函数上难以接受。为了我自己的缘故拼出来,这就是我想要实现的目标:
声明变量:颜色和主要
设置颜色等于id“color”并获取输入值
如果颜色的值为红色,蓝色或黄色,则将primary设置为等于两个字符串中的一个
在p中显示主要ID为“answer”
我没有得到输出。我怀疑我应该使用某些东西代替.value,也许or语句不正确。有人请给我一些指示吗?我将不胜感激。这是代码:
<div>
Color:<input id="color" />
<p>Primary Color?</p>
<button onclick="myFunction1()">Click</button>
<p id="answer"></p>
<script>
function myFunction1()
{
var color,primary;
color=document.getElementById("color").value;
primary=(color="red"||"blue"||"yellow")?"It is a primary color":"Not a primary color";
document.getElementById("answer").innerHTML=primary;
}
</script>
</div>
答案 0 :(得分:4)
两个问题。
=
是一项任务。 ===
是一个比较。 (==
也是一种比较,但会进行类型转换)。这样:
(color === "red" || color === "blue" || color === "yellow")
或者,你可以只搜索一个数组:
(["red", "blue", "yellow"].indexOf(color) !== -1)
答案 1 :(得分:1)
三元表达式必须使用==
评估每个条件,=
运算符用于赋值。
primary=(color=="red"|| color=="blue"||color=="yellow")?"It is a primary color":"Not a primary color";
您可能还需要考虑为不区分大小写的比较小写所提供的值:
color=document.getElementById("color").value.toLowerCase();
JS小提琴: http://jsfiddle.net/K3KUK/
答案 2 :(得分:1)
您不能使用||
来链接要比较的值,它会链条件。您需要将变量与每个值进行比较:
color == "red" || color == "blue" || color == "yellow"