본문 바로가기
WEB Archive

[HTML] Javascript - 테이블 동적으로 생성하기 Id를 선택자로 table 엘리먼트에 접근

by universedevelope 2024. 8. 21.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test024.html</title>
<style type="text/css">

	/* 나의 스타일.. 명령 프롬프트 */
	*
	{
		background-color: #047b88;
		font-family: 나눔고딕코딩;
		font-size: 20pt;
		color: #ababab;
		font-weight: bold;
	}
</style>

<script type="text/javascript">
	function insertMember()
	{
		//alert("함수호출~");
		
		// 사용자가 input한 value 를 변수(name, tel, addr) 에담기
		var name = document.getElementById("txtName").value;
		var tel = document.getElementById("txtTel").value;
		var addr = document.getElementById("txtAddr").value;
		
		// 테스트
		//alert(name + " " + tel + " " + addr );
		
		// table 엘리먼트 접근
		var tableNode = document.getElementById("memberTbl");
		
		// table 형식
		// 통상적 table tr td   
		// 논리적 table thead th       tbody tr  td
		
		// tbody 엘리먼트 접근 → 사용하지 않는 경우 생략
		// ※ 주의. 브라우저에 따라 다른 결과
		/*
		if (tableNode.childNodes[0].nodeType==1)
		{
			tbodyNode = tableNode.childNodes[0];
		} 
		else
		{
			tbodyNode = tableNode.childNodes[1];
		}
		
		// 테스트
		alert(tableNode.childNodes[0].nodeType);
		*/
		
		
		// <tr></tr> 엘리먼트 동적 생성
		// <td></td> 엘리먼트 동적 생성
		
		var trNode = document.createElement("tr");	// <tr></tr>
		/*
		var tdNode1 = document.createElement("td"); // <td></td>
		var nameNode = document.createTextNode(name);	// <td> 노드에 추가할 "김정용" 텍스트 노드 생성
		
		var tdNode2 = document.createElement("td");		// <td>노드에 추가할 010-5555-5555텍스트 노드 생성
		var telNode = document.createTextNode(tel);
		
		var tdNode3 = document.createElement("td");		// <td>노드에 추가할 경기도 분당 텍스트 노드 생성
		var addrNode = document.createTextNode(addr);
		
		// append 요소를 추가하다...
		// td 노드를 만들어서.. 만든 노드에 append(추가할내용) 이런식으로 삽입..
		// 결과적으로 td에 삽입되는것임
		tdNode1.appendChild(nameNode);
		tdNode2.appendChild(telNode);
		toNode3.appendChild(addrNode);
		*/
		trNode.appendChild(createTdNode(name));              // <tr><td>  김정용     </td></tr>
		trNode.appendChild(createTdNode(tel));				 // <tr><td>  010-5555-5555     </td></tr>
		trNode.appendChild(createTdNode(addr));				 // <tr><td>  경기도 분당     </td></tr>
		
		tableNode.appendChild(trNode);
		
		/*  ↓↓↓↓↓↓
		<table>
		<tr><td>  김정용     </td></tr>
		<tr><td>  010-5555-5555     </td></tr>
		<tr><td>  경기도 분당     </td></tr>
		</table>
		*/
		
		//alert("사랑해");
	}
	
	function createTdNode(val)
	{
		var textNode = document.createTextNode(val);
		var tdNode = document.createElement("td");
		tdNode.appendChild(textNode);
		return tdNode;
		
	}


</script>


</head>



<body>

<div>
	<h1>자바스크립트를 활용한 테이블 동적 생성</h1>
	<hr>
</div>

<div>
	<form>
		이름 <input type = "text" id = "txtName" class = "txt"><br>
		전화번호 <input type = "text" id = "txtTel" class = "txt"><br>
		주소 <input type = "text" id = "txtAddr" class = "txt"><br>
		
		<button type = "button" onclick = "insertMember()">회원 정보 입력</button>
		<br>		<br>		<br>
		<table border = "1" id ="memberTbl">
			<tr>
				<td>이름</td>
				<td>전화번호</td>
				<td>주소</td>
			</tr>
			<tr>
				<td>최선하</td>
				<td>010-1111-1111</td>
				<td>제주 서귀포</td>
			</tr>
			<tr>
				<td>서민지</td>
				<td>010-1122-1221</td>
				<td>전남 여수</td>
			</tr>
			<tr>
				<td>김민성</td>
				<td>010-3333-3333</td>
				<td>경남 산청</td>
			</tr>
			<tr>
				<td>오이삭</td>
				<td>010-3344-4433</td>
				<td>서울 강남</td>
			</tr>
		</table>
		
	</form>
</div>








</body>
</html>
728x90

댓글