if语句与img.src

时间:2011-02-06 22:45:34

标签: javascript

问题:无论何时,如果我有单个'=',变量将显示并且没问题......但它完全忽略了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>

4 个答案:

答案 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中除0falsenull&amp; undefined评估为真。

您可能想要alert(pic1)查看其中的内容,或者如果您使用的是Firefox或Chrome,则可以使用Javascript调试工具。

答案 3 :(得分:1)

使用

var pic1 = document.getElementById('team1pic').getAttribute('src',2);

...让src像它的定义一样,而不是完整的路径。