难倒,初学javascript功能

时间:2013-12-11 01:25:18

标签: javascript html

我开始学习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>

3 个答案:

答案 0 :(得分:4)

两个问题。

  1. =是一项任务。 ===是一个比较。 (==也是一种比较,但会进行类型转换)。
  2. 您需要在OR的每一面都有完整的表达
  3. 这样:

    (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"