JavaScript/DOM

[JavaScript]선택한 요소 앞에 새로운 요소 추가하는 방법

DevStory 2022. 12. 5.

선택한 요소 앞에 새로운 요소 추가하는 방법

이번 포스팅은 JavaScript에서 선택한 요소 앞에 새로운 요소를 추가할 수 있는 before() 메서드 사용 방법을 소개합니다.


before() 메서드

Element 객체에서 지원하는 before() 메서드를 사용하면 선택한 요소 앞에 새로운 요소를 삽입할 수 있습니다.

Element.before(newElement);

 

id가 "ul-list"인 요소 앞에 <h1> 요소를 추가하는 예제는 아래와 같습니다.

// 순서 1. 특정 요소 선택
const ulElement = document.getElementById("ul-list");

// 순서 2. h1 요소 생성
const h1Element = document.createElement('h1');

// 순서 3. h1 요소의 텍스트 설정
h1Element.innerText = 'new Text';

// 순서 4. 선택한 요소 앞에 h1 요소를 추가
ulElement.before(h1Element);

 

before() 메서드의 매개변수로 단일 요소가 아닌 여러 개의 요소를 전달할 수 있습니다.

Element.before(newElement1, newElement2, ..., newElementN);

 

id가 "ul-list"인 요소 앞에 <h1>부터 <h3>까지 요소를 추가하는 예제는 아래와 같습니다.

const ulElement = document.getElementById("ul-list");

const h1Element = document.createElement('h1');
h1Element.innerText = 'h1 Example';

const h2Element = document.createElement('h2');
h2Element.innerText = 'h2 Example';

const h3Element = document.createElement('h3');
h3Element.innerText = 'h3 Example';

ulElement.before(h1Element, h2Element, h3Element);

before() 메서드는 undefined를 반환하며, 새로운 요소를 추가할 수 없는 경우 HierarchyRequestError 예외가 발생합니다.


예제 1. 단일 요소 추가

아래는 간단한 HTML 마크업 문서입니다.

<div id="content">
  <ul id="ul-list">
    <li>li-1</li>
    <li>li-2</li>
  </ul>
</div>

 

아래는 id가 "ul-list"인 HTML 요소 앞에 <h1> 요소를 추가하는 JavaScript 코드입니다.

const ulElement = document.getElementById("ul-list");

const h1Element = document.createElement("h1");
h1Element.innerText = "h1 Example";

ulElement.before(h1Element);

[실행 결과]


예제 2. 여러 요소 추가

아래는 before() 메서드를 사용하여 <h1>부터 <h4>까지 요소를 추가하는 JavaScript 코드입니다.

const ulElement = document.getElementById("ul-list");

const hElement = new Array(4);

hElement[0] = document.createElement("h1");
hElement[0].innerText = "h1 Example";

hElement[1] = document.createElement("h2");
hElement[1].innerText = "h2 Example";

hElement[2] = document.createElement("h3");
hElement[2].innerText = "h3 Example";

hElement[3] = document.createElement("h4");
hElement[3].innerText = "h4 Example";

ulElement.before(...hElement);

[실행 결과]


예제 3. 특정 요소 이동

DOM에 이미 존재하는 요소를 선택한 요소 앞으로 이동시킬 수 있습니다.

 

아래는 간단한 HTML 마크업 문서입니다.

<div id="content">
  <ul id="ul-list1">
    <li>ul1-li1</li>
  </ul>
  <ul id="ul-list2">
    <li>ul2-li1</li>
  </ul>
</div>

 

아래는 id가 "ul-list2"인 요소를 id가 "ul-list1"인 요소 앞으로 이동시키는 JavaScript 코드입니다.

const ulElement1 = document.getElementById("ul-list1");
const ulElement2 = document.getElementById("ul-list2");

ulElement1.before(ulElement2);

[JavaScript 코드 적용 전]

[JavaScript 코드 적용 후]


예제 4. 요소가 아닌 문자열 추가

before() 메서드를 사용하여 HTML 요소가 아닌 문자열을 추가할 수 있습니다.

 

아래는 간단한 HTML 마크업 문서입니다.

<div id="content">
  Hello,
  <ul id="ul-list">
    <li>li-1</li>
    <li>li-2</li>
  </ul>
</div>

 

아래는 id가 "ul-list"인 HTML 요소 앞에 문자열을 추가하는 JavaScript 코드입니다.

const ulElement1 = document.getElementById("ul-list");

ulElement1.before("JavaScript");

[실행 결과]

반응형

댓글