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

HTML DOM Table insertRow() 메서드 – 문법과 실전 예제 총정리

HTML DOM의 insertRow() 메서드는 HTML 문서의 테이블에 빈 <tr>(행) 요소를 생성하여 추가하는 기능을 합니다. 자바스크립트만으로 동적으로 테이블에 새로운 행을 삽입할 수 있어, 데이터 목록을 실시간으로 갱신해야 하는 웹 애플리케이션에서 매우 유용하게 활용됩니다.

문법(Syntax)

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

object.insertRow(index)

여기서 index는 행이 삽입될 위치를 지정하는 숫자입니다.

  • index를 생략하거나 -1을 지정하면: 테이블의 마지막에 새 행이 추가됩니다.
  • index를 지정하면: 해당 위치에 새 행이 삽입되고, 기존 행들은 뒤로 밀려납니다.

예제(Example)

버튼을 클릭하면 테이블의 두 번째 위치(인덱스 1)에 새로운 행이 삽입되는 예제입니다.

<!DOCTYPE html>
<html>
<style>
    body {
        color: #000;
        background: lightblue;
        height: 100vh;
        text-align: center;
    }
    table {
        margin: 2rem auto;
    }
    caption {
        color: #db133a;
    }
    .btn {
        background: #db133a;
        border: none;
        height: 2rem;
        border-radius: 2px;
        width: 40%;
        display: block;
        color: #fff;
        outline: none;
        cursor: pointer;
        margin: 1rem auto;
    }
    .show {
        font-size: 1.2rem;
    }
</style>
<body>
<h1>DOM Table insertRow() Method Demo</h1>
<table border="2">
<tr>
<td>Name</td>
<td>Roll No.</td>
</tr>
<tr>
<td>John</td>
<td>071717</td>
</tr>
<tr>
<td>Jane</td>
<td>031717</td>
</tr>
</table>
<button onclick="create()" class="btn">Create Row</button>
<script>
    function create() {
        var table = document.querySelector('table');
        var tableRow = table.insertRow(1);
        tableRow.innerHTML = "<td>Maximilian</td><td>081717</td>";
    }
</script>
</body>
</html>

코드 설명

위 예제의 핵심 로직은 다음과 같습니다.

  1. document.querySelector('table')로 문서에서 첫 번째 테이블 요소를 선택합니다.
  2. table.insertRow(1)을 호출하여 인덱스 1, 즉 헤더 행 바로 아래에 빈 <tr> 요소를 생성합니다.
  3. innerHTML 속성을 이용해 새로 만든 행 안에 이름(Maximilian)과 학번(081717) 셀 두 개를 채워 넣습니다.

실행 결과(Output)

페이지를 실행하면 학생 명단이 담긴 테이블과 'Create Row' 버튼이 화면에 나타납니다.

HTML DOM Table insertRow() 메서드 – 문법과 실전 예제 총정리

'Create Row' 버튼을 클릭하면 테이블의 두 번째 행 위치에 Maximilian의 정보가 담긴 새로운 행이 즉시 추가됩니다.

HTML DOM Table insertRow() 메서드 – 문법과 실전 예제 총정리

참고 사항

새로 삽입된 행은 기본적으로 비어 있으므로, 위 예제처럼 innerHTML로 내용을 채우거나 insertCell() 메서드를 사용해 셀을 하나씩 추가하는 방식도 함께 활용할 수 있습니다. 또한 insertRow()는 반환값으로 새로 생성된 <tr> 요소를 돌려주기 때문에, 이 값을 변수에 저장해 스타일 지정이나 이벤트 바인딩 등 추가 작업을 진행하기에도 편리합니다.