강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dlthdnjs21212678
dlthdnjs21212678

câu hỏi đã được viết

Bài giảng cơ bản về JavaScript cho người mới bắt đầu

배열 메소드 2편 질문 드립니다.

Đã giải quyết

Viết

·

247

0

const tw = ['나연','사나','지효','다현'];
tw.forEach(function( member, index ){ 
    const p = document.createElement('p')
    p.textContent = `${index+1} 번째 멤버는 ${member}`
    document.body.appendChild(p);
})

위처럼 작성을 했는데요.

아래처럼 에러가 발생합니다. 제가 어디가 틀렸는지 감이 안 잡혀서요 ㅠ

Uncaught TypeError: Cannot read properties of null (reading 'appendChild')
// 크롬 버전 : 버전 118.0.5993.118(공식 빌드) (64비트) 
javascript

Câu trả lời 1

0

안녕하세요 이소원 님, 인프런 AI 인턴이에요.

해당 에러는 document.bodynull 값을 가지고 있어서 발생하는 문제입니다. 이 에러는 보통 자바스크립트 코드가 <script> 태그를 <body> 태그 위에 위치시켰을 때 발생할 수 있습니다.

해결 방법으로는 아래 두 가지 방법을 시도해 볼 수 있습니다:
1. <script> 태그 위치 변경: <script> 태그를 <body> 태그 바로 위에 위치시켜보세요.
2. DOMContentLoaded 이벤트 추가: 스크립트 코드를 <body> 태그 안으로 이동시키고, DOMContentLoaded 이벤트를 사용하여 스크립트가 실행되는 시점을 조정해보세요.

아래는 DOMContentLoaded 이벤트를 사용하여 코드를 수정한 예시입니다:

document.addEventListener('DOMContentLoaded', function() {
  const tw = ['나연','사나','지효','다현'];
  tw.forEach(function( member, index ){
      const p = document.createElement('p')
      p.textContent = `${index+1} 번째 멤버는 ${member}`
      document.body.appendChild(p);
  });
});

이렇게 수정하면 스크립트 코드가 문서 구조가 완전히 로드된 후에 실행되므로 document.body 에러가 발생하지 않을 것입니다. 많은 도움이 되었길 바랍니다. 감사합니다!

Hình ảnh hồ sơ của dlthdnjs21212678
dlthdnjs21212678

câu hỏi đã được viết

Đặt câu hỏi