2013-05-11 63 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"; 
}