getelementsbyclassname undefined error 문의입니다.
안녕하세요.
특정 페이지에서만 생기는 문제인데요,
google Chrome console에서 var temp = getelementsbyclassname("test_item_custom") 이렇게 하면 3개 짜리 배열이 구해집니다. 그리고
innerTxt = Temp[0].innerText 와 같이해서. INnerTxt에 같이 들어갑 집니다..
그런데 위의 코드를 그대로 webpage에 scrip tag로 감싸서 html중간에 혹은 제일 처음에 넣고나서
Temp[0].innerText 에서 undefined의 property접근이라고. 에러가 뜹니다. 혹여 DOM생성보다 빨리 javascript가 불렸을까봐 십초짜리 타이머로 호출되게 해 보았으나 같은 에러입니다.
DOM 생성시간보다 뒤에 호출하였는데 아예 undefined 가 뜨는 경우는 많지는 않습니다.
순차적으로 하나씩 해보시길 추천드립니다.
1. frame 이 동일한것이 맞는지 우선 확인
2. getelementsbyclassname("test_item_custom") console 에 찍어보고 제대로 호출되는지 확인
3. getelementsbyclassname("testitemcustom") [0] 확인
4. getelementsbyclassname("testitemcustom") [0].innerText console 에 찍어서 확인
다 정상적으로 작동한다면 코드 어딘가에 오탈자나 오류가 있지 않은가 싶습니다.
1~4번 시도해보시고 이상없으시면 코드표 자체를 첨부해주시면 살펴보도록 하겠습니다.
testitemcustom이라고 예시를 들어주신 태그가 특정 동작(클릭이나 스크롤)을 해야만 생성되는 태그가 아닌가요? 그렇다면 그 동작을 하기 전까지는 태그가 존재하 않아 에러가 발생할 수 있습니다. 특정 동작은 사용자의 행동뿐만 아니라 onload같은 브라우저의 이벤트일 수도 있습니다.