AD JB Toolbox 01

jQuery / Reference / .add()

.add()는 현재 선택 집합과 추가 대상을 합친 새 jQuery 객체를 반환합니다. 문서에 요소를 삽입하는 메서드가 아니며, 원래 변수의 선택 집합도 자동으로 바뀌지 않습니다.

문법과 적용 범위

const $combined = $("li").add("p.note");
$combined.addClass("marked");

추가 대상으로 선택자, DOM 요소, jQuery 객체 또는 HTML 문자열을 전달할 수 있습니다. 같은 요소가 겹치면 중복을 제거하며, 같은 문서에 연결된 요소들은 문서 순서로 정렬됩니다. 인수로 준 순서가 그대로 유지된다고 가정하지 마세요. 새 HTML을 전달하면 요소를 만들 수는 있지만, .appendTo() 같은 삽입 메서드를 호출하기 전에는 페이지에 표시되지 않습니다.

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

전체 실행 예제

아래 코드를 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 add 예제</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><li>첫 항목</li><li>둘째 항목</li></ul>
<p class="note">목록 설명</p>
  <p id="output" aria-live="polite"></p>
  <script>
    $(function () {
      const $items = $("li");
      const $combined = $items.add("p.note");
      $combined.addClass("marked");
      $("#output").text("원래: " + $items.length + " / 합친 결과: " + $combined.length);
    });
  </script>
</body>
</html>

실행 결과 확인

두 항목과 설명 문단이 강조되고 결과는 원래: 2 / 합친 결과: 3입니다. $items에는 여전히 li 두 개만 들어 있습니다.

사용할 때 주의할 점

  • 변수를 확장하려면 $items = $items.add(...)처럼 다시 대입해야 하므로 변수를 let으로 선언하세요. 반환값을 버리면 이후 작업에서 추가 대상이 빠집니다.
  • 서로 다른 문서의 요소나 문서에 연결되지 않은 요소를 합칠 때는 정렬 순서를 기대하지 마세요. 정확한 순서가 필요하면 DOM 요소 배열로 jQuery 객체를 만듭니다.
  • 탐색 직전의 선택 집합을 합치는 .addBack()과 다릅니다. 임의의 다른 대상을 합칠 때는 .add(), 탐색 스택을 활용할 때는 .addBack()을 사용하세요.

용도를 비교하려면 .addBack()과 선택 집합의 차이, .appendTo()로 새 요소 삽입하기을 참고하세요.

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

jQuery / Reference / .append()

내용을 마지막 자식으로 추가하는 문법과 실행 결과를 확인하고, 기존 요소의 이동·다중 대상 복제·입력값 처리 시 주의점을 설명합니다.

jQuery / Reference / .attr()

jQuery / Reference / .attr()

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

jQuery / Reference / .slideDown()

jQuery / Reference / .slideDown()

숨겨진 내용을 펼치는 문법과 초기 표시 상태를 설명하고, 효과 큐·완료 콜백·동작 줄이기를 처리하는 예제를 제공합니다.

jQuery / Reference / .insertBefore()

jQuery / Reference / .insertBefore()

넣을 요소를 먼저 지정해 대상 앞에 형제로 삽입하는 문법과 before의 차이, 이동·복제 동작을 설명합니다.

jQuery / Reference / .unwrap()

jQuery / Reference / .unwrap()

직접 부모를 조건부로 제거하면서 자식과 형제를 보존하는 방법, 스타일·이벤트·복원 시 주의점을 설명합니다.

jQuery / Reference / .addBack()

jQuery / Reference / .addBack()

탐색 직전의 집합을 다시 합치는 방법과 선택자 필터의 적용 범위를 예제로 확인합니다.

jQuery / Reference / :button

jQuery / Reference / :button

input 버튼과 button 태그를 선택하는 :button의 범위를 예제로 확인하고, submit·reset 입력칸과의 차이를 설명합니다.

jQuery / Reference / .each()

jQuery / Reference / .each()

요소별 콜백의 인덱스와 this를 확인하고, 반복 중단·화살표 함수·비동기 처리의 주의점을 설명합니다.

jQuery / Reference / .wrapAll()

jQuery / Reference / .wrapAll()

여러 요소를 하나의 부모로 모으는 방법과 중간 형제의 처리, 위치 이동 및 감싸기 해제의 한계를 설명합니다.

jQuery / Reference / .has()

jQuery / Reference / .has()

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