728x90
반응형
prepend, append, before, after의 차이.
이는 JavaScript에서 DOM(Document Object Model)을 조작하는 방법인데, 각각의 메서드가 HTML 요소를 어떻게 다루는지 보여주고 있습니다.

코드 분석
- *append (코드: tomorrow.append(last))
- 의미: append는 특정 요소의 맨 끝에 새로운 요소를 추가합니다.
- 코드 설명:
- last라는 요소(<p>마지막</p>)를 tomorrow라는 부모 요소의 맨 마지막 자식으로 추가해요.
- 즉, tomorrow 요소 안에 이미 자식 요소들이 있다면, 그 뒤에 last가 붙습니다.
- 예시 결과: 만약 tomorrow가 <div id="tomorrow"><p>기존</p></div>였다면, append(last) 후에는 <div id="tomorrow"><p>기존</p><p>마지막</p></div>가 됩니다.
- *prepend (코드: tomorrow.prepend(first))
- 의미: prepend는 특정 요소의 맨 처음에 새로운 요소를 추가합니다.
- 코드 설명:
- first라는 요소(코드에서는 정의되지 않았지만, prepend의 첫 번째 인자로 사용됨)를 tomorrow라는 부모 요소의 맨 첫 번째 자식으로 추가해요.
- 즉, tomorrow 요소 안에 이미 자식 요소들이 있다면, 그 앞에 first가 붙습니다.
- 예시 결과: tomorrow가 <div id="tomorrow"><p>기존</p></div>였다면, prepend(first) 후에는 <div id="tomorrow"><p>first</p><p>기존</p></div>가 됩니다.
- *before (코드: tomorrow.before(prev))
- 의미: before는 특정 요소 바로 앞에 새로운 요소를 삽입합니다.
- 코드 설명:
- prev라는 요소(<p>이전</p>)를 tomorrow 요소 바로 앞에 삽입해요.
- 여기서 before는 tomorrow 자체를 기준으로 동작하므로, tomorrow의 부모 노드에서 tomorrow 바로 앞에 prev가 추가됩니다.
- 예시 결과: 만약 부모가 <div><div id="tomorrow"></div></div>라면, before(prev) 후에는 <div><p>이전</p><div id="tomorrow"></div></div>가 됩니다.
- *after (코드: tomorrow.after(next))
- 의미: after는 특정 요소 바로 뒤에 새로운 요소를 삽입합니다.
- 코드 설명:
- next라는 요소(<p>다음</p>)를 tomorrow 요소 바로 뒤에 삽입해요.
- after도 tomorrow 자체를 기준으로 동작하므로, tomorrow의 부모 노드에서 tomorrow 바로 뒤에 next가 추가됩니다.
- 예시 결과: 부모가 <div><div id="tomorrow"></div></div>라면, after(next) 후에는 <div><div id="tomorrow"></div><p>다음</p></div>가 됩니다.
비교 및 차이점
이제 코드와 이전 답변을 바탕으로 prepend, append, before, after를 비교해 볼게요:
메서드 위치 기준 코드 예시 결과 예시 (가정: tomorrow가 <div id="tomorrow"><p>기존</p></div>)
prepend | 부모 요소의 맨 처음 자식 | 부모 요소 내부 | tomorrow.prepend(first) | <div id="tomorrow"><p>first</p><p>기존</p></div> |
append | 부모 요소의 맨 마지막 자식 | 부모 요소 내부 | tomorrow.append(last) | <div id="tomorrow"><p>기존</p><p>마지막</p></div> |
before | 대상 요소의 바로 앞 | 대상 요소의 부모 기준 | tomorrow.before(prev) | <div><p>이전</p><div id="tomorrow"><p>기존</p></div></div> |
after | 대상 요소의 바로 뒤 | 대상 요소의 부모 기준 | tomorrow.after(next) | <div><div id="tomorrow"><p>기존</p></div><p>다음</p></div> |
추가적인 차이점
- prepend와 append는 부모-자식 관계를 다룹니다. 즉, 요소 내부에서 자식 노드를 추가하는 방식이에요.
- prepend: 자식 중 맨 앞에 추가.
- append: 자식 중 맨 뒤에 추가.
- before와 after는 형제 관계를 다룹니다. 즉, 특정 요소와 같은 레벨(형제 노드)에서 위치를 조정하는 방식이에요.
- before: 대상 요소 바로 앞에 형제 노드로 추가.
- after: 대상 요소 바로 뒤에 형제 노드로 추가.
시각적 이해
가정: HTML 구조가 <div id="parent"><div id="tomorrow"><p>기존</p></div></div>일 때, 각 메서드 적용 후 결과:
- tomorrow.prepend(first) → <div id="parent"><div id="tomorrow"><p>first</p><p>기존</p></div></div>
- tomorrow.append(last) → <div id="parent"><div id="tomorrow"><p>기존</p><p>마지막</p></div></div>
- tomorrow.before(prev) → <div id="parent"><p>이전</p><div id="tomorrow"><p>기존</p></div></div>
- tomorrow.after(next) → <div id="parent"><div id="tomorrow"><p>기존</p></div><p>다음</p></div>
결론
- prepend와 append는 부모 요소 내부에서 자식 요소를 추가할 때 사용되고, 위치가 맨 처음이냐 맨 마지막이냐의 차이예요.
- before와 after는 대상 요소와 같은 레벨(형제)에서 요소를 추가하며, 대상 요소를 기준으로 앞이냐 뒤냐의 차이입니다.
728x90
반응형
'IT공부' 카테고리의 다른 글
[지식루프 IT공부] HTML속성과 DOM 프로퍼티 차이 (1) | 2025.03.25 |
---|---|
[지식루프 IT공부] .remove, .prepend, .append, .before, .after 를 이용한 노드 삭제, 이동방법 (0) | 2025.03.25 |
맥북 화면분할 단축키 (0) | 2025.03.25 |
[지식루프 IT공부] innerHTML이 위험한 이유 (0) | 2025.03.24 |
맥북/윈도우 vscode 단축키 (2) | 2025.03.24 |