2014-02-17 79 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"); 
相關問題