当我点击时,为什么总是弹出“你摇滚”警报?

时间:2015-06-09 16:32:05

标签: javascript html

我是一名新的javascript学习者。我做了这个,但不明白为什么当我点击时总会弹出“你摇滚”警报。提前致谢

function favColors() {
  var example = document.getElementById('example');
    if(document.getElementById('favorite').value=example.options[0].text) {
      alert("you rock");
    }else {
      alert("have no color taste");
    }  
  document.getElementById('favorite').value=example.options[example.selectedIndex].text;
}
<form>
    <select id="example" onChange="favColors()">
        <option>Black</option>
        <option>Red</option>
        <option>White</option>
        <option>Pink</option>
    </select>    
    <p>
        Your favorite sport is:
        <input type="text" id="favorite">
    </p>    
</form>

2 个答案:

答案 0 :(得分:2)

您的IF条款需要==而不是=if(document.getElementById('favorite').value==example.options[0].text) {。它应该是这样的:

if(document.getElementById('favorite').value=example.options[0].text) {

而不是

document.getElementById('favorite').value=example.options[example.selectedIndex].text;

希望它有所帮助。

另外,这个:

example

在定义example.options[example.selectedIndex].text之后,

需要是第一个正确的陈述。

更新

  • 需要应用document.getElementById('favorite').value=之前,你可以用它进行比较。
  • ==符号用于分配,IF用于比较。因此,您的Message语句需要相应更新。阅读this

答案 1 :(得分:2)

您在if语句中使用了赋值而不是比较运算符。

作业运算符

//sets x to 5
x = 5
//sets y to an empty object
y = {}
//sets y to 5
y = x

常规比较运算符

//evaluates to true
5 == 5
//evaluates to true
'5' == '5'
//evaluates to true
'5' == 5
//evaluates to false
'5' == 0

严格比较运算符(您应该使用的运算符)

//evaluates to true
5 === 5
//evaluates to true
'5' === '5'
//evaluates to false
'5' === 5