getElementsByClassName 이 왜 값이 없을까요?? 채택완료
연습하는 사이트는 kkw369.dothome.co.kr 입니다.
연습하는 것은 메인 배너 슬라이드를 하려고 하는데
slide.js 라는 곳에 코드를 작성햇는데 크롬에서 디버깅 해보니 getElementsByClassName 리턴이 아무것도 안오는것 같네요.
아래는 코드입니다.
slide.js
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName('mySlides');
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
setTimeout(showSlides, 2000); // Change image every 2 seconds
}
index.php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (G5_IS_MOBILE) {
include_once(G5_THEME_MOBILE_PATH.'/index.php');
return;
}
include_once(G5_THEME_PATH.'/head.sub.php');
?>
/img1.jpg" style="width:100%">
/img2.jpg" style="width:100%">
/img3.jpg" style="width:100%">
include_once(G5_THEME_PATH.'/tail.sub.php');
?>
답변 3개
스크립트 호출을 head.sub.php에 넣어서 발생하였습니다.
index.php 로딩 끝나고. tail.sub.php에 넣어주니 정상동작합니다.
댓글을 작성하려면 로그인이 필요합니다.
추가 디버깅은 document에 요소들이 없는것 같습니다. 로딩이 되기 전에 스크립트가 실행되서 그럴까요? 혹시 인덱스에서 필수로 호출해 줘야 하는 부분이 있을까요?
댓글을 작성하려면 로그인이 필요합니다.
w3school에서 코드 가져왔습니다. js호출 말고 index에 직접 작성시 돌아가는 것을 확인했습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인