본문 바로가기

js

HTML 요소에 내용 추가하는 3가지 방법 — append, textContent, innerHTML

✨ 추천 사용 상황

  • ✅ append() : 요소나 텍스트를 안전하게 덧붙이고 싶을 때
  • ✅ textContent : 태그 없이 순수 텍스트만 다룰 때
  • ✅ innerHTML : HTML 구조나 스타일을 같이 넣고 싶을 때

 

📘 append vs textContent vs innerHTML 요약

메서드           설명                                    태그 해석                                                  추가 방식

 

append() 요소나 텍스트를 뒤에 추가 ❌ 텍스트에 HTML 태그 써도 그대로 나옴 요소 또는 문자열 가능
(여러 개도 가능)
textContent 텍스트만 넣기 HTML 태그 무시됨 기존 내용에 텍스트만 추가/대체
innerHTML HTML 문자열을 넣음 태그 해석됨 기존 내용을 덮어씀 또는 += 로 추가 가능

 

🧪 예시 요약

 

// append
box.append("안녕 <b>굵게</b>"); // => 그대로 보임

// textContent
box.textContent = "<b>굵게</b>"; // => <b>굵게</b> (태그 그대로)

// innerHTML
box.innerHTML = "<b>굵게</b>"; // => 실제로 굵게 표시됨

 

아래는 비교용 테스트 코드

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>append vs textContent vs innerHTML</title>
  <style>
    #box {
      border: 2px solid #333;
      padding: 10px;
      margin-top: 10px;
    }
    button {
      margin: 5px;
    }
  </style>
</head>
<body>
  <h1>append vs textContent vs innerHTML 비교</h1>

  <button onclick="useAppend()">append()</button>
  <button onclick="useTextContent()">textContent</button>
  <button onclick="useInnerHTML()">innerHTML</button>
  <button onclick="clearBox()">내용 지우기</button>

  <div id="box">
    <strong>📦 여기에 추가됩니다</strong>
  </div>

  <script>
    function useAppend() {
      const box = document.getElementById('box');
      const span = document.createElement('span');
      span.textContent = '🟢 append: <b>굵게</b> 안됨 | ';
      box.append(span);
    }

    function useTextContent() {
      const box = document.getElementById('box');
      box.textContent += '🔴 textContent: <b>태그</b> 무시됨 | ';
    }

    function useInnerHTML() {
      const box = document.getElementById('box');
      box.innerHTML += '🔵 innerHTML: <b>굵게</b> 됨 | ';
    }

    function clearBox() {
      const box = document.getElementById('box');
      box.innerHTML = '<strong>📦 여기에 추가됩니다</strong>';
    }
  </script>
</body>
</html>