프로그래밍/웹 개발

[DOM] object HTMLElement 에러 핸들링

제이콥J 2022. 1. 18. 00:39
문제 상황 : 의도한 웹 페이지가 렌더링 되지 않고, 브라우저 화면에 [object HTMLElement]가 표시됨

원인 : DOM 객체가 HTML 엘리먼트의 내용(content)으로 전달됨

해결방안 : append 메소드를 사용하여 DOM 객체를 자식 노드로 연결하기

 

에러 코드 (innerHTML 메소드 사용)

// page.js

module.exports = function createHTML () {

  const main = document.createElement('main');
  const h1 = document.createElement('h1');
  h1.textContent = '페이지';
  const div = document.createElement('div');
  div.textContent = '내용';

  main.append(h1, div)

  return main;
}


// index.js

const Template = require("./page.js");
const contentDiv = document.querySelector('#root')

contentDiv.innerHTML = Template();  
// innerHTML 메소드로 DOM 객체가 HTML 엘리먼트의 내용(content)에 추가됨

 

수정된 코드 (append 메소드 사용)

// page.js

module.exports = function createHTML () {

  const main = document.createElement('main');
  const h1 = document.createElement('h1');
  h1.textContent = '페이지';
  const div = document.createElement('div');
  div.textContent = '내용';

  main.append(h1, div)

  return main;
}


// index.js

const Template = require("./page.js");
const contentDiv = document.querySelector('#root')

contentDiv.append(Template());
// append 문법을 사용하여 DOM 객체를 자식 노드로 연결

 

 

반응형