2015-06-14 57 views
0

我是JavaScript新手,我試圖從第一個到第二個以及第二個到第一個(無限期)每次點擊一次圖像。我嘗試這樣做:在JavaScript中更改圖像源

function change() { 
 

 
    var imgId = document.getElementById("image"); 
 

 
    var ubuntu = imgId.src="ubuntu.jpg"; 
 

 
    var debian = imgId.src="debian.jpg" 
 

 
    if(imgId.src="ubuntu.jpg") { 
 

 
     return debian; 
 

 
    } else if(debian) { 
 

 
     return ubuntu; 
 
    
 
    } 
 

 
}
<img id="image" src="ubuntu.jpg" width="160" height="120" onclick = "change()"> 
 
    

另外,我想知道爲什麼代碼是從Ubuntu的改變圖像的debian但不能從Debian的Ubuntu的原因。

+2

比較運算符是'=='或'==='。你正在使用'='(賦值)來搞亂邏輯。 – JJJ

回答

2

您可以只需撥動你的2個圖像之間的src像這樣:

function change() { 
    var imgElement = document.getElementById("image"); 

    if (imgElement.src === 'debian.jpg') { 
     imgElement.src = 'ubuntu.jpg'; 
    } 
    else { 
     imgElement.src = 'debian.jpg'; 
    } 
} 

或者,使用ternary operator

function change() { 
    var imgElement = document.getElementById("image"); 
    var src = imgElement.src; 

    imgElement.src = src === 'debian.jpg' ? 'ubuntu.jpg' : 'debian.jpg'; 
} 
+0

他們每個人都只將Ubuntu的debian轉爲debian,然後停止在debian上,因爲我的代碼是這樣的 –

+0

你是如何運行代碼的? –

+0

on here:http://www.w3schools.com/js/tryit.asp?filename=tryjs_dom_image –

0

一個你能圖像之間互換的方式是這樣的:

image = document.getElementById('image'); 

var toggle = 1; 
function change() { 
    if (toggle == 1) { 
    image.src = "debian.jpg"; 
    toggle = 2; 
    } 
    if (toggle == 2) { 
    image.src = "ubuntu.jpg"; 
    toggle = 1; 
    } 
} 

然後將圖像設置爲像您一樣進行onclick:

<img id="image" src="ubuntu.jpg" onclick="change()">