我是一名新的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>
答案 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