2016-05-11 49 views
0

我將創建簡單的滑塊在JavaScript(沒有jQuery)。 我有一個無序列表.xhtml頁面:簡單滑塊在JS不工作

<ul> 
     <li class="slider"><img src="images/1.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/2.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/3.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/4.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/5.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/6.jpg" alt="asd" width="600px" height="400px" /></li> 
     <li class="slider"><img src="images/7.jpg" alt="asd" width="600px" height="400px" /></li> 
</ul> 

這是我的腳本:

var s = document.getElementsByClassName('slider'); 
function hide() 
{ 
    for(var i = 0; i < s.length; i++) 
    { 
     s[i].style.display = "none"; 
    } 
} 

var i = 0; 
function sw() 
{ 
    hide(); 
    s[i].style.display = "block"; 
    i++; 
    if (i >= s.length) i = 0; 
} 
hide(); 
sw(); 
setInterval(sw, 1000); 

Log.console告訴我這個錯誤:遺漏的類型錯誤:無法未定義讀取屬性「風格」。

+0

你的HTML在哪裏添加你的JS? –

+0

在外部文件main.js.它的XHTML – Risksec7

+0

但是你的腳本標籤在哪裏?它在頭上嗎?身體的底部?中間某個地方? –

回答

0

您試圖在加載之前獲取所有元素。將<script>標籤移動到<body>的底部。這樣,你的元素將被加載到DOM中。

<body> 
    <ul> 
    <li class="slider"></li> 
    ... 
    </ul> 
    <script src="javascript/main.js"></script> 
</body>