JavaScript

JavaScript_DOM

climb-up 2022. 4. 14. 21:06

DOM(Document Object Model)

1) Node객체

-텍스트가 있는 노드 생성

-텍스트노드가 없는 노드 생성

2) innerHTML

3) 스타일 지정

4) 노드 삭제

 

1) Node객체

-텍스트가 있는 노드 생성

노드: 태그를 객체화 시켜서 보는 것(노드 = 태그) 글자를 넣을 수 있는 곳은 다 태그이다

<button onclick="test1();">실행확인</button>
	<div id="area1" class="area"></div>
	<script>
		function test1(){
			var title = document.createElement('h3');//<h3></h3>
			var textNode = document.createTextNode('안녕');
			
			title.appendChild(textNode);//<h3>안녕</h3> appendChild는 안에 들어가는 자식으로서 이어붙힌다.타이틀 안에 넣겠다는 의미다.
			document.getElementById('area1').appendChild(title);//타이틀 안에 텍스트노드가 이미 들어가있어서 타이틀을 넣어서 불러온다.
		}
	</script>

 

-텍스트노드가 없는 노드 생성

: 이미지넣기

<button onclick="test2();">실행확인</button>
	<div id="area2" class="area"></div>
	<script>
		function test2(){
			var imgTest = document.createElement('img');//<img>태그생성
			
			imgTest.src="https://www.telegraph.co.uk/content/dam/Pets/spark/royal-canin/happy-puppy.jpg?imwidth=1240"
			imgTest.wigth= '150';
			imgTest.height = '100';
			imgTest.myProperty = 'abc';//없는 속성이라 들어가진 않지만 강제로 넣을 수도 있음
			
			imgTest.setAttribute('myProperty', 'ABC');//강제로 집어넣기
			
			document.getElementById('area2').appendChild(imgTest);
			
		}
	</script>

<style> .area{border: 1px solid black; min-height: 100px;} </style>

 

추가해서 사용할 수 있다.

 

2) innerHTML

: 태그들을 다 넣을 수 있다.

	<button onclick="test3();">실행확인</button>
	<table id="board">
		<tr>
			<th>글 번호</th>
			<th>글 제목</th>
			<th>작성자</th>
			<th>조회수</th>
			<th>작성일자</th>
		</tr>
	
	</table>
	<script>
		function test3(){
			var board = document.getElementById('board');
			
			var num = 1;
			var title = '제목임다';
			var user = 'user01';
			var count = 1;
			var date = new Date();
			
			board.innerHTML += '<tr><td>' + num + '</td>'//innerHTML은 태그를 다 넣어준다. innerText는 텍스트로 다 들어간다(내용을 글자로 집어넣어야할때 사용)
								+'<td>' + title + '</td>'
								+'<td>' + user + '</td>'
								+'<td>' + count + '</td>'
								+'<td>' + date.getFullYear()+ "-" + (date.getMonth()+1)
										+ "-" + date.getDate() + '</td><tr>';
								
		}
	</script>

innerText는 텍스트로 다 들어간다(내용을 글자로 집어넣어야할때 사용)

 

3) 스타일 지정

<button onclick="test4();">실행확인</button>
	<div id="area4" class="area"></div>
	<script>
		function test4(){
			var area4 = document.getElementById('area4');
			
			area4.style.backgroundColor = 'black';
			area4.style.borderRadius = "100px";
			area4.style.transition = 'all 2s';
		}
	</script>

2초에 걸려서 블랙으로 컬러가 변경되고 테두리가 라운드로 변화가 일어난다. 

 

4) 노드 삭제

remove()를 사용하여 노드삭제를 한다.

<button onclick="test5();">실행확인</button>
	<div id="area5" class="area"></div>
	<script>
		function test5(){
			var area5 = document.getElementById('area5');
			area5.remove();
		}
	</script>