2014-02-17 55 views
0

我有一个简单的错误与我的JavaScript文件(不能设置属性空的“SRC”)菜鸟JavaScript错误(无法设置属性空的“SRC”)

我试图改变形象每1秒一次。

这里是我的html代码:

<!DOCTYPE html> 
<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <script type="text/javascript" src="jquery-2.1.0.js"></script> 
    <script type="text/javascript" src="function.js"></script> 

    </head> 
<body > 
<div class='bannerbg'> 
    <img src="img/2.jpg" alt=""> 
    <div class='slider'></div> 
</div> 


</body> 
</html> 

这里是我的JavaScript文件:

images=new Array 
(
"img/1.jpg", 
"img/2.jpg", 
"img/3.jpg" 
); 


function left() //this function change the index of the array of images 
{ 
    images.push(images.shift()); 

} 

function change(){ 

    i=document.querySelector("#bannerbg img"); 

    i.src=images[0]; 
} 

setInterval("left(); change()",1000); 
+0

您没有使用jQuery。 – Jack

+0

嗯,首先,您使用的类bannerbg,您的查询是寻找ID bannerbg – Valdas

+1

@Pavlo:其实,虽然不推荐它,[你可以(https://developer.mozilla.org/en/docs/网络/ API/window.setInterval) – Cerbrus

回答

3

试试这个:

document.querySelector(".bannerbg img"); 

div有 “bannerimg” 作为类,所以你需要一段时间来告诉querySelector寻找一个班级。

#的用于寻找id性质,如下所示:

<div id='bannerbg'> 
    <img src="img/2.jpg" alt=""> 
    <div class='slider'></div> 
</div> 

然而,对于最大的兼容性,我建议添加ID的图像元素:

<img src="img/2.jpg" alt="" id="myImage"> 

然后您可以使用document.getElementById("myImage")访问特定元素。
getElementById是更好的DOM访问功能之一,它甚至可以在5.5版本的IE版本上工作。


在不同的音符:

setInterval电话是有点bad practice的。 (见的解释在“代码”参数)

一个更好的选择是这样称呼它:

setInterval(function(){ 
    left(); 
    change(); 
}, 
1000); 
2

你的选择出现空,因此以下尝试设置src失败。


在这一行

<div class='bannerbg'> 

你实际上声明class<div>,而不是一个ID。但是,在选择器中,您使用的是#,它指的是ID。嘿,您使用的ID选择不是一类选择#=所以要么改变选择使用.作为一个类选择

i=document.querySelector(".bannerbg img"); 

或更改HTML设置一个id而不是class

<div id='bannerbg'> 
1

ID 。 = class。这意味着你不选择任何元素,因此错误。

尝试

document.querySelector(".bannerbg img"); 
相关问题