2011-02-06 64 views
0

问题:每当如果我有单个'='该变量将显示并罚款..但它完全忽略了if语句。如果我只做双'=='..变量不显示,并且它转到else状态。让我知道你是否看错了。如果声明与img.src

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> 

回答

1

我很高兴看到这个HTML附加到。

原因单=工作,但==并没有指出他们不相等的结论。它显示为=的原因是因为赋值评估为true。对于任何分配给“truthy”的变量的情况都是如此,这意味着该值将在JS中评估为真。在javascript中,除了0falsenull & undefined评估为true。

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

+0

由于某种原因,pic1的警报发出文档url?我有team1pic设置改变onclick ..所以它没有被定义,直到点击 – Shawn 2011-02-06 23:00:02

1

更好:

var s = document.getElementById('team1pic').src, 
    w = document.getElementById('wins'); 

w.innerHTML = s == 'pens.jpg' ? PittWins : 'no'; 

我认为PittWins是变量。

+0

我现在正在得到一些结果..我有document.getElementById('team1pic')。src设置为将onclick更改为不同的图像。图像显示在正确的位置..但它仍然没有给出结果。我使用更多代码更新答案 – Shawn 2011-02-06 22:57:47

2

if之前做一个alert(pic1),你会发现它。

唯一的“问题”是pic1不等于'pens.jpg'。如果用单个=替换为赋值运算符,则会得到一个表达式,其值为'pens.jpg',始终为true,因此它始终运行第一个分支。

1

使用

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

...喜欢它的定义,而不是完整的路径来获取SRC。

+0

仍然没有去,虽然它似乎会做的伎俩。我应该如果陈述设置全名路径。我正在学习的一件有趣的事情是,即使发生onclick之前,“否”(else语句)也会出现。有没有更好的方法来做ifs和onclicks在一起? – Shawn 2011-02-06 23:24:28