테스트 사이트 - 개발 중인 베타 버전입니다

getElementsByClassName 이 왜 값이 없을까요?? 채택완료

kk 5년 전 조회 2,224

연습하는 사이트는 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');

?>

 

 

  

  

    1 / 3

    /img1.jpg" style="width:100%">

    Caption Text

  

 

  

    2 / 3

    /img2.jpg" style="width:100%">

    Caption Two

  

 

  

    3 / 3

    /img3.jpg" style="width:100%">

    Caption Three

  

 

  

  

  

 

  

  

  

 

include_once(G5_THEME_PATH.'/tail.sub.php');

?>

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

kk
5년 전

스크립트 호출을 head.sub.php에 넣어서 발생하였습니다.

index.php 로딩 끝나고. tail.sub.php에 넣어주니 정상동작합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

kk
5년 전

추가 디버깅은 document에 요소들이 없는것 같습니다. 로딩이 되기 전에 스크립트가 실행되서 그럴까요? 혹시 인덱스에서 필수로 호출해 줘야 하는 부분이 있을까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

kk
5년 전

w3school에서 코드 가져왔습니다. js호출 말고 index에 직접 작성시 돌아가는 것을 확인했습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인