JavaScript에서 DOM 요소 삽입과 삭제: 주요 메서드와 활용 예제

JavaScript에서 DOM 요소 삽입과 삭제

JavaScript를 사용하면 DOM(Document Object Model)을 조작하여 동적인 웹 페이지를 구현할 수 있습니다. 여기서는 DOM 요소를 생성, 삽입, 삭제하는 다양한 메서드를 자세히 살펴보겠습니다.

1. document.createElement()

새로운 HTML 요소를 생성합니다.

사용법:

const newElement = document.createElement('tagName');

예제:

const div = document.createElement('div'); // <div></div>
div.textContent = 'Hello World!';         // <div>Hello World!</div>
document.body.appendChild(div);           // 문서의 body에 추가

2. append()

부모 요소에 텍스트와 자식 요소를 동시에 추가할 수 있습니다.

사용법:

parentElement.append(element1, element2, 'text');

예제:

const parent = document.getElementById('parent');
const span = document.createElement('span');
span.textContent = 'I am a span element.';
parent.append(span, 'Some text'); // 부모 요소에 span과 텍스트 추가

3. appendChild()

요소를 부모의 마지막 자식으로 추가합니다.

사용법:

parentElement.appendChild(newChild);

예제:

const ul = document.createElement('ul');
const li = document.createElement('li');
li.textContent = 'List Item 1';
ul.appendChild(li);
document.body.appendChild(ul);

4. removeChild()

자식 요소를 제거합니다.

사용법:

parentElement.removeChild(childElement);

예제:

const parent = document.getElementById('parent');
const child = document.getElementById('child');
parent.removeChild(child); // child 제거

5. remove()

요소 자체를 제거합니다. 부모를 참조할 필요가 없습니다.

사용법:

element.remove();

예제:

const element = document.getElementById('element');
element.remove(); // 자신을 DOM에서 제거

6. insertAdjacentElement()

특정 위치에 요소를 삽입합니다.

사용법:

referenceElement.insertAdjacentElement(position, newElement);

position 값:

  • 'beforebegin': 참조 요소 바로 앞
  • 'afterbegin': 참조 요소 내부의 첫 번째 자식 앞
  • 'beforeend': 참조 요소 내부의 마지막 자식 뒤
  • 'afterend': 참조 요소 바로 뒤

예제:

const reference = document.getElementById('reference');
const newElement = document.createElement('div');
newElement.textContent = 'New Element';
reference.insertAdjacentElement('beforebegin', newElement);

7. innerHTML

HTML 문자열로 요소의 내용을 설정하거나 업데이트합니다.

사용법:

element.innerHTML = '<tag>content</tag>';

예제:

const container = document.getElementById('container');
container.innerHTML = '<p>New content</p>';

8. replaceChild()

기존 자식 요소를 새로운 요소로 교체합니다.

사용법:

parentElement.replaceChild(newChild, oldChild);

예제:

const parent = document.getElementById('parent');
const newChild = document.createElement('div');
newChild.textContent = 'I am new';
const oldChild = document.getElementById('old');
parent.replaceChild(newChild, oldChild);

9. cloneNode()

요소를 복제합니다.

사용법:

const clone = element.cloneNode(deep);

예제:

const original = document.getElementById('original');
const copy = original.cloneNode(true);
document.body.appendChild(copy);

10. insertBefore()

특정 위치에 요소를 삽입합니다.

사용법:

parentElement.insertBefore(newChild, referenceChild);

예제:

const parent = document.getElementById('parent');
const newChild = document.createElement('div');
newChild.textContent = 'New Child';
const referenceChild = document.getElementById('reference');
parent.insertBefore(newChild, referenceChild);

11. 템플릿을 활용한 삽입

<template> 태그를 사용하여 미리 정의된 구조를 삽입할 수 있습니다.

예제:

<template id="myTemplate">
  <div class="template-content">
    <p>Template content here!</p>
  </div>
</template>
const template = document.getElementById('myTemplate');
const clone = template.content.cloneNode(true);
document.body.appendChild(clone);

12. outerHTML

요소 자체를 포함하여 HTML 문자열로 대체합니다.

사용법:

element.outerHTML = '<div>New Element</div>';

예제:

const element = document.getElementById('element');
element.outerHTML = '<p>Replaced Element</p>';

요약

다양한 메서드를 적절히 조합하면 효율적으로 DOM을 조작할 수 있습니다. 각 메서드의 특징과 사용 사례를 잘 이해하고 프로젝트에 맞게 활용해 보세요.

Categories:

Updated:

Leave a comment