2017-02-10 8 views
0

スライドを表示するはずのシンプルなjavascriptスライダーを作成してから5秒後に表示します。滑り台。私はコンソールのエラーを取得する "Uncaught TypeError:displaynoneでnullのプロパティ 'style'を読み取ることができません。以下はslider7.jsの内容です:Javascriptコンソール:Uncaught TypeError:displaynoneでnullのプロパティ 'style'を読み取ることができません

window.onload = function() { 

var imgid = []; 

var numberOfSlides = document.getElementById("slide-container").childElementCount; 

console.log("total slide count is: " + numberOfSlides); 

for (i = 1; i <= numberOfSlides; i++) { 
    console.log("here's the value of i: " + i); 
    imgid.push("img-" + i); 
} 

console.log("The full contents of the array are " + imgid); 


function displaynone() { 
    document.getElementById(imgid[j]).style.display = "none"; 
} 

for (j = 0; j < numberOfSlides; j++) { 
    console.log("identify each image id in turn: " + imgid[j]); 

    document.getElementById(imgid[j]).style.display = "block"; 

     window.setTimeout(displaynone, 5000); 
    } 

}; 

私はすべてのHTMLオブジェクトが完全にロードされていることを確認するためにwindow.onload内スライダ根性を包みました。

<body> 
    <div id="slide-container"> 
     <img id="img-1" src="005.jpg"> 
     <img id="img-2" src="006.jpg"> 
     <img id="img-3" src="007.jpg"> 
     <img id="img-4" src="008.jpg"> 
     <img id="img-5" src="009.jpg"> 
    </div> 
    <script src="slider7.js"></script> 
</body> 

関連する部分を読むにconsole.log:私はまた、私はスタイリングだ要素のIDが存在することを確認するためにHTMLをチェックしました

The full contents of the array are img-1,img-2,img-3,img-4,img-5 
identify each image id in turn: img-1 
identify each image id in turn: img-2 
identify each image id in turn: img-3 
identify each image id in turn: img-4 
identify each image id in turn: img-5 

を観察であることを以下のコードの行window.setTimeoutは機能に包まれたときにのみ、コンソールのエラーが発生します。

document.getElementById(imgid[j]).style.display = "none"; 

私は関数からこの行を削除して単に「表示= 『ブロック』」を含む行の下にそれを置く場合は、それが設定されますインライン表示をなしにしますが、時間の遅延はありません。どんな洞察にも感謝します!

答えて

0

として変数jを宣言すると、それを解決することができますを追加しました。

<body onload="your function"> 

初期段階ですべての画像を非表示にするには、cssを使用します。

関連する問題