簡體   English   中英

if聲明與img.src

[英]if statement with img.src

問題:只要我有單個“ =”,該變量就會顯示出來並且很好..但它完全忽略了if語句。 如果我只做雙'=='..變量不顯示,它將進入else狀態。 萊姆知道你是否看錯了。

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>

if之前執行alert(pic1) ,您會發現它。

唯一的“問題”是pic1不等於'pens.jpg' 如果用單個=代替賦值運算符,則會得到一個表達式,其結果為'pens.jpg' ,該表達式始終為true ,因此它始終運行第一個分支。

更好:

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

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

我認為PittWins是一個變量。

我很高興看到它附帶的HTML。

單個=起作用但==的原因並不表明它們不相等的結論。 它顯示=的原因是因為賦值評估為true。 分配給“真實”變量的任何情況都會如此,這意味着該值在JS中將為true。 在javascript中,除0falsenullundefined評估為true。

您可能需要執行alert(pic1)以查看其中的內容,或者如果使用的是Firefox或Chrome,則可以使用Javascript調試器工具。

采用

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

...以獲得定義的src,而不是完整的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM