element.insertAdjacentElement(position, newElement)
<!-- beforebegin (바로 앞) -->
<div id="my-div" style="background: gold;"> <!-- 지정된 요소 -->
    <!-- afterbegin (안쪽 시작 부분) -->
    Content
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
const ele = document.getElementById("my-div"); // 지정된 요소(element)

// 삽입할 요소
const newElement = document.createElement("p");
newElement.textContent = "삽입할 p 요소";

/*
 * element.insertAdjacentElement(position, newElement)
 * 지정된 요소(element)의
 * 인접한 위치에(position) 전달받은
 * DOM 요소 노드(newElement)를 직접 삽입합니다.
*/

// 요소 바로 앞 새로운 요소 삽입
// 하나의 요소 노드만을 삽입할 수 있음
ele.insertAdjacentElement("beforebegin", newElement); // 여러 개의 요소 노드 트리를 한 번에 삽입하는 것은 불가능
ele.insertAdjacentElement("afterbegin", newElement); // 여러 개를 삽입 시도 시 마지막 삽입만 가능
실제 적용된 모습
const newElement = document.createElement("div");
element.insertAdjacentElement("beforeend", newElement);
element.insertAdjacentHTML("beforeend", '<div class="new-element">New Element</div>');
<!-- beforebegin (바로 앞) -->
<div id="my-div" style="border: 1px solid red; margin-bottom: 1em;">
    <!-- afterbegin (안쪽 시작 부분) -->
    Content
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
<button type="button" id="insert-btn">div 바로 앞에 요소 삽입하기</button>
const btn = document.getElementById("insert-btn");          

btn.addEventListener("click", () => {
    // 지정된 요소
    const myDiv = document.getElementById("my-div");

    if (myDiv) {
        // 삽입할 요소
        const newElement = document.createElement("p");
        newElement.textContent = "새로운 텍스트";

        // 요소 바로 앞 새로운 요소 삽입
        myDiv.insertAdjacentElement("beforebegin", newElement);
    }
});
실제 적용된 모습 '버튼'을 실제로 클릭해 보세요!
<div id="first" style="background-color: gold;">첫 번째 요소</div>
<div id="second">두 번째 요소</div>

<!-- beforebegin (바로 앞) -->
<div id="my-div" style="border: 1px solid red;margin-bottom: 1em;">
    <!-- afterbegin (안쪽 시작 부분) -->
    Content
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
<button type="button" id="insert-btn">div 안쪽 끝 부분에 기존 요소 이동하기</button>
const btn = document.getElementById("insert-btn");          

btn.addEventListener("click", () => {
    // 지정된 요소
    const myDiv = document.getElementById("my-div");

    if (myDiv) {
        // 기존 DOM 요소 가져오기
        const firstElement = document.getElementById("first");

        // 요소 안쪽 끝 부분에 기존 요소 이동
        myDiv.insertAdjacentElement("beforeend", firstElement);
    }
});
실제 적용된 모습 '버튼'을 실제로 클릭해 보세요!
<!-- beforebegin (바로 앞) -->
<div id="my-div" style="border: 1px solid red;margin-bottom: 1em;">
    <!-- afterbegin (안쪽 시작 부분) -->
    Content
    <!-- beforeend (안쪽 끝 부분)-->
</div>
<!-- afterend (바로 뒤) -->
<button type="button" id="insert-btn">여러 요소 삽입하기</button>
const btn = document.getElementById("insert-btn");          

btn.addEventListener("click", () => {
    // 지정된 요소
    const myDiv = document.getElementById("my-div");

    if (myDiv) {
        // 삽입할 여러 요소를 생성하기
        const elH3 = document.createElement("h3");
        elH3.textContent = "새로운 h3 요소";

        const elP = document.createElement("p");
        elP.textContent = "새로운 p 요소";

        const elDiv = document.createElement("div");
        elDiv.textContent = "새로운 div 요소";

        // 삽입할 여러 요소를 배열에 담기
        const elements = [
            elH3,
            elP,
            elDiv
        ];

        // 반복문으로 순회하면서 호출하기
        elements.forEach(element => {
            myDiv.insertAdjacentElement("beforebegin", element);
        });
    }
});
실제 적용된 모습 '버튼'을 실제로 클릭해 보세요!