2011-02-06 73 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