Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM createElement() 메서드 완벽 정리 – 자바스크립트로 동적 요소 생성하기

HTML DOM의 createElement() 메서드는 자바스크립트(JavaScript)를 사용하여 HTML 요소를 동적으로 생성할 때 사용하는 핵심 메서드입니다. 이 메서드는 생성하려는 요소의 이름을 매개변수로 받아 해당 요소 노드를 만들어 반환합니다.

단, createElement()로 생성한 요소는 그 자체만으로는 화면에 나타나지 않습니다. 새로 만든 요소를 실제 DOM 트리에 추가하려면 반드시 appendChild() 메서드를 함께 사용해야 합니다.

문법(Syntax)

createElement() 메서드의 기본 문법은 다음과 같습니다.

document.createElement(nodename)
  • nodename: 생성할 HTML 요소의 태그 이름을 문자열로 지정합니다. 예: "BUTTON", "DIV", "P" 등

예제(Example)

버튼을 클릭할 때마다 새로운 버튼을 화면에 추가하는 간단한 예제를 살펴보겠습니다.

<!DOCTYPE html>
<html>
<body>
<h1>createElement() example</h1>
<p>Click the below button to create more buttons</p>
<button onclick="createButton()">CREATE</button>
<br><br>
<script>
    var i=0;
    function createButton() {
        i++;
        var btn = document.createElement("BUTTON");
        btn.innerHTML="BUTTON"+i;
        var br= document.createElement("BR");
        document.body.appendChild(btn);
        document.body.appendChild(br);
    }
</script>
</body>
</html>

실행 결과(Output)

위 코드를 실행하면 다음과 같은 초기 화면이 나타납니다.

HTML DOM createElement() 메서드 완벽 정리 – 자바스크립트로 동적 요소 생성하기

CREATE 버튼을 세 번 클릭하면, 클릭한 횟수만큼 새로운 버튼이 순서대로 추가되는 것을 확인할 수 있습니다.

HTML DOM createElement() 메서드 완벽 정리 – 자바스크립트로 동적 요소 생성하기

코드 상세 설명

위 예제의 동작 원리를 단계별로 살펴보겠습니다.

1. 클릭 이벤트 설정

먼저 사용자가 클릭하면 createButton() 함수가 실행되도록 버튼에 onclick 이벤트를 연결합니다.

<button onclick="createButton()">CREATE</button>

2. 요소 생성 및 DOM 추가

createButton() 함수 내부에서는 document 객체의 createElement() 메서드를 사용해 <button> 요소를 생성합니다. 이어서 innerHTML 속성으로 버튼 위에 표시될 텍스트를 설정하고, 줄바꿈을 위해 <br> 요소도 함께 생성합니다. 마지막으로 appendChild() 메서드를 통해 두 요소를 모두 문서 본문(body)에 추가합니다.

var i=0;
function createButton() {
    i++;
    var btn = document.createElement("BUTTON");
    btn.innerHTML="BUTTON"+i;
    var br= document.createElement("BR");
    document.body.appendChild(btn);
    document.body.appendChild(br);
}

3. 카운터 변수의 역할

변수 i는 버튼이 몇 번 생성되었는지 세는 카운터 역할을 하며, 함수가 호출될 때마다 1씩 증가합니다. 이 값이 "BUTTON1", "BUTTON2", "BUTTON3"처럼 버튼 라벨에 붙어 각각의 버튼을 구분할 수 있게 해줍니다.

정리

createElement() 메서드는 다음과 같은 흐름으로 사용됩니다.

  1. 생성: document.createElement("태그이름")으로 요소 노드를 만든다.
  2. 설정: innerHTML, className 등으로 내용과 속성을 지정한다.
  3. 추가: appendChild() 또는 append()로 부모 노드에 삽입한다.

이 패턴은 동적 UI 구성, 목록 자동 생성, 사용자 입력 기반 콘텐츠 추가 등 실무 자바스크립트 개발에서 매우 빈번하게 활용되므로 확실히 익혀두는 것이 좋습니다.