问题:无论何时,如果我有单个'=',变量将显示并且没问题......但它完全忽略了if语句。如果我只做双'=='..变量不显示,它进入其他状态。 lemme知道你是否看错了。
var pic1 = document.getElementById('team1pic').src;
var win1 = document.getElementById('wins').innerHTML;
if (pic1 == 'pens.jpg') {
document.getElementById('wins').innerHTML = PittWins;
} else {
document.getElementById('wins').innerHTML = 'no';
}
这里有一些与我一起去的HTML
<a class="dock-item" id="pens" href="#" onclick="document.getElementById('team1pic').src='pens.jpg'"><span>Pittsburgh Penguins</span><img src="pens.jpg" alt="Pittsburgh Penguins" /></a>`
然后
<th width="35%" ><img src="" / id='team1pic'></th>
答案 0 :(得分:2)
在alert(pic1)
之前执行if
,你就会弄清楚。
唯一的“问题”是pic1
不等于'pens.jpg'
。如果使用赋值运算符单个=
替换,则会得到一个计算结果为'pens.jpg'
的表达式,它始终为true
,因此它始终运行第一个分支。
答案 1 :(得分:1)
更好:
var s = document.getElementById('team1pic').src,
w = document.getElementById('wins');
w.innerHTML = s == 'pens.jpg' ? PittWins : 'no';
我认为PittWins
是变量。
答案 2 :(得分:1)
我很高兴看到附加的HTML。
单=
的工作原因,但==
并未指出它们不相等的结论。它出现在=
的原因是因为赋值的计算结果为true。对于您分配给“truthy”变量的任何内容都是这种情况,这意味着该值将在JS中评估为true。在javascript中除0
,false
,null
&amp; undefined
评估为真。
您可能想要alert(pic1)
查看其中的内容,或者如果您使用的是Firefox或Chrome,则可以使用Javascript调试工具。
答案 3 :(得分:1)
使用
var pic1 = document.getElementById('team1pic').getAttribute('src',2);
...让src像它的定义一样,而不是完整的路径。