AD JB Toolbox 01

jQuery / Reference / .appendTo()

.appendTo()는 대상 요소의 내부의 마지막 자식 위치에 내용을 삽입합니다. 새 HTML을 만들 수도 있고, 문서에 이미 있는 요소를 해당 위치로 이동할 수도 있습니다.

문법과 적용 범위

$(content).appendTo(target);

새로 만든 항목에 클래스를 지정한 뒤 목록에 넣을 때 사용할 수 있습니다. 메서드 앞에는 넣을 내용을, 인수에는 삽입 대상의 선택자나 DOM 요소, jQuery 객체를 지정합니다. DOM(Document Object Model)은 브라우저가 문서를 요소의 트리로 표현한 구조입니다. 이 메서드는 부모의 내부를 바꾸며, 부모 자체의 앞뒤에 형제를 추가하는 동작과 구분해야 합니다. 반환된 jQuery 객체에는 삽입한 요소가 들어 있어 이어서 그 요소를 꾸밀 수 있습니다.

jQuery 공식 문서의 .appendTo() 정의와 인수에서 다른 호출 형태도 확인할 수 있습니다.

전체 실행 예제

아래 코드를 UTF-8 형식의 example.html 파일로 저장한 뒤 브라우저로 여세요. 예제는 jQuery 4.0.0 일반 빌드를 외부 주소에서 불러오므로 인터넷 연결이 필요합니다. 문서가 준비된 뒤 실행하도록 $(function () { ... }) 안에 코드를 작성했습니다.

<!doctype html>
<html lang="ko">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery appendTo 예제</title>
  <style>
    body { margin: 24px; font-family: sans-serif; line-height: 1.6; }
    .marked { background: #fff0b3; border: 2px solid #835b00; }
    .active { color: #a00000; font-weight: bold; }
    button, input, select { font: inherit; }
    #output { white-space: pre-wrap; overflow-wrap: anywhere; }
  </style>
  <script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
</head>
<body>
<ul id="list"><li>기존 항목</li></ul>
  <p id="output" aria-live="polite"></p>
  <script>
    $(function () {
      $("<li>추가 항목</li>").appendTo("#list");
      $("#output").text($("#list").children().map(function () { return $(this).text(); }).get().join(" / "));
    });
  </script>
</body>
</html>

실행 결과 확인

파일을 열면 추가 내용이 한 번 삽입되고, 아래 결과 문단에 기존 항목 / 추가 항목가 표시됩니다. 개발자 도구의 Elements(요소)에서 추가 항목이 목록의 자식인지 확인하면 삽입 위치를 분명히 구분할 수 있습니다. 새로고침하면 원래 문서에서 다시 실행됩니다.

기존 요소를 이동하는 문법

$("#existing").appendTo("#destination");

이 코드는 id가 existing인 기존 요소와 destination인 대상이 있는 문서에서 사용합니다. 삽입 대상이 하나라면 기존 요소의 부모나 위치가 바뀌며, 브라우저의 페이지 원본 보기보다 현재 DOM에서 변화를 확인해야 합니다.

입력값을 텍스트로 넣기

const userText = "<안내 문구>";
$("<li>").text(userText).appendTo("#list");

앞의 전체 예제에서 삽입 코드 대신 사용하면 꺾쇠괄호까지 문자로 표시됩니다. 삽입된 내용만 지우려면 새 항목을 선택해 .remove()를 사용하되, 기존 항목까지 함께 지우지 않도록 범위를 정합니다.

사용할 때 주의할 점

  • 기존 요소를 하나의 대상으로 넣으면 복사본이 아니라 원본이 이동합니다. 원래 위치도 유지하려면 복제한 요소를 넣어야 합니다.
  • 대상이 여러 개이면 마지막 대상을 제외한 곳에는 복제본이 들어갑니다. id가 있는 요소를 복제하면 중복 id가 생길 수 있으므로 클래스나 별도 id를 사용하세요.
  • 대상 선택 결과가 비어 있으면 문서에서 삽입 결과를 볼 수 없습니다. 선택자의 철자와 실행 시점을 확인하고, 버튼으로 반복 실행하는 코드라면 클릭마다 내용이 추가된다는 점도 고려하세요.
  • 사용자 입력을 HTML 문자열로 이어 붙이면 교차 사이트 스크립팅(XSS) 문제가 생길 수 있습니다. 입력값을 표시할 때는 요소를 만든 뒤 .text()로 넣어 마크업으로 해석되지 않게 합니다.

용도를 비교하려면 .prependTo()의 반대 방향 삽입, .append()와 인수 배치 비교을 참고하세요.

같은 카테고리의 다른 글
jQuery / Reference / .has()

jQuery / Reference / .has()

특정 자손을 가진 원래 요소를 골라내는 방법을 확인하고, find와 결과 대상이 어떻게 다른지 설명합니다.

jQuery / Reference / .before()

jQuery / Reference / .before()

대상의 앞에 형제 요소를 추가하는 방법과 기존 요소 이동, prepend 및 insertBefore와의 차이를 설명합니다.

jQuery / Reference / .addClass()

jQuery / Reference / .addClass()

기존 클래스를 유지하며 한 개 또는 여러 클래스를 추가하는 방법과 CSS가 적용되지 않을 때의 확인 사항을 설명합니다.

jQuery / Reference / .add()

jQuery / Reference / .add()

여러 선택 집합을 합쳐 사용하는 방법과 원래 변수의 보존 여부를 확인하고, 문서 삽입 및 addBack과의 차이를 설명합니다.

jQuery / Reference / .removeAttr()

jQuery / Reference / .removeAttr()

HTML 속성 삭제와 빈 문자열 설정의 차이, 입력값 보존, 불리언·ARIA 속성의 주의점을 예제로 설명합니다.

jQuery / Reference / .prependTo()

jQuery / Reference / .prependTo()

삽입할 내용을 먼저 지정해 대상의 첫 번째 자식으로 넣는 방법과 반환 집합, 이동·복제 동작을 설명합니다.

jQuery / Reference / .slideUp()

jQuery / Reference / .slideUp()

내용을 접어 숨기는 문법과 시간·easing·완료 콜백을 설명하고, 연속 클릭과 처음 상태로 되돌리는 예제를 제공합니다.

jQuery / Reference / .toggleClass()

jQuery / Reference / .toggleClass()

클래스 반전과 불리언 조건으로 상태 지정하기를 구분하고, 버튼 상태 및 jQuery 4.0에서 사용할 문법을 설명합니다.

jQuery / Reference / .attr()

jQuery / Reference / .attr()

HTML 속성의 읽기·설정 방법과 반환값을 확인하고, 현재 입력값·체크 상태·ARIA 속성의 처리 차이를 설명합니다.

jQuery / Reference / .empty()

jQuery / Reference / .empty()

컨테이너를 남기고 내부 요소와 텍스트를 비우는 방법과 다시 채우기, 이벤트·입력값의 처리 범위를 설명합니다.