2013-05-11 65 views
2

我有一個非常簡單的Javascript代碼。代碼是在頁面加載時更改圖像的來源。它是這樣的:JavaScript:語法錯誤?是嗎?

window.onload = initAll; 
function initAll(){ 
    document.getElementById("imgSlider").src = "menuBack.jpg"; 
} 

現在,這工作得很好。看看下面的代碼。

window.onload = initAll; 
function initAll(){ 
    var imgSrc = document.getElementById("imgSlider").src 
    imgSrc = "menuBack.jpg"; 

} 

這個代碼不應該像上面的代碼一樣執行嗎?我想,應該的。下面的代碼有什麼問題嗎?我使用Mozilla Firefox(最新版本)。這可能是瀏覽器的問題嗎?

+0

是不是你在.src之後輸入分號? – rene 2013-05-11 09:40:04

+3

@rene:Javascript有「自動分號插入」 – deepmax 2013-05-11 09:42:14

+1

@MM。這是真的,這並不意味着你應該依靠它,但我承認這不是問題的根源... – rene 2013-05-11 09:47:30

回答

3

第二段代碼應該肯定會做別的。

第一部分:

document.getElementById("imgSlider").src = "menuBack.jpg"; 

意味着你的字符串"menuBack.jpg"存入document.getElementById("imgSlider").src

然而,第二部分:

var imgSrc = document.getElementById("imgSlider").src 
imgSrc = "menuBack.jpg"; 

意味着你第一存儲document.getElementById("imgSlider").srcimgSrc,但隨後覆蓋該通過存儲"menuBack.jpg"imgSrc。 這是不同的。

+0

非常感謝您的回答。它清除了我的懷疑! :) – 2013-05-11 09:44:26

3

不喜歡

var imgSrc = document.getElementById("imgSlider"); 
imgSrc.src = "menuBack.jpg"; 

你應該在你的變量的DOM元素的值應用於其屬性。其他方法你只是有一個不是DOM元素的字符串。

+0

哦,我明白了。感謝您澄清疑問。 – 2013-05-11 09:42:18

2
window.onload = initAll; 
function initAll(){ 
    var img = document.getElementById("imgSlider"); 
    img.src = "menuBack.jpg"; 
}