JavaScript에서 HTML 테이블의 행을 삭제하려면 DOM의 deleteRow() 메서드를 사용하면 됩니다. 이 메서드는 테이블 객체에 직접 호출할 수 있으며, 삭제하고자 하는 행의 인덱스 번호를 인수로 전달합니다.
deleteRow() 메서드의 기본 문법
기본 사용법은 다음과 같습니다.
document.getElementById('테이블ID').deleteRow(인덱스);여기서 인덱스는 0부터 시작합니다. 즉, deleteRow(0)을 호출하면 테이블의 첫 번째 행이 삭제됩니다. 만약 인덱스를 지정하지 않으면 -1이 기본값으로 설정되어 마지막 행이 삭제됩니다.
예제
아래 예제 코드를 실행하면 버튼 클릭 시 테이블의 행이 한 번에 하나씩 삭제되는 것을 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<script>
function captionFunc(x) {
document.getElementById(x).createCaption().innerHTML = "Demo Caption";
}
</script>
</head>
<body>
<table style="border:2px solid black" id="newtable">
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>Three</td>
<td>Four</td>
</tr>
<tr>
<td>Five</td>
<td>Six</td>
</tr>
</table>
<p>
<input type="button" onclick="captionFunc('newtable')" value="Display Table Caption">
</p>
<p>
<input type="button" value="Delete Row" onclick="document.getElementById('newtable').deleteRow(0)">
</p>
</body>
</html>코드 설명
위 코드의 핵심 부분은 다음과 같습니다.
- 테이블에는 세 개의 행이 있으며, 각 행마다 두 개의 셀이 포함되어 있습니다.
- Delete Row 버튼을 클릭하면
deleteRow(0)이 실행되어 항상 첫 번째 행이 삭제됩니다. - 버튼을 반복해서 누르면 두 번째, 세 번째 행이 순차적으로 첫 번째 행이 되며 차례대로 삭제됩니다.
참고 사항
행을 삭제하기 전에 테이블에 남아 있는 행의 개수를 확인하려면 rows.length 속성을 활용할 수 있습니다. 이를 통해 모든 행이 삭제된 후 발생할 수 있는 오류를 방지할 수 있습니다.
var table = document.getElementById("newtable");
if (table.rows.length > 0) {
table.deleteRow(0);
}이처럼 deleteRow() 메서드를 사용하면 별도의 라이브러리 없이도 순수 JavaScript만으로 테이블 행을 간편하게 제어할 수 있습니다.