보통 태그에 접근하여 그 값을 사용하거나 속성을 변경할 때 이 방법을 이용하는데


변수를 선언하여 document.getElement~~~~ 와 같이 document의 메소드를 이용한다.



Id의 경우는                     var 변수 이름 = document.getElementById("지정한 Id");


태그를 이용할 땐              var 변수 이름 = document.getElementsByTagName("태그 명");


name을 이용할 땐            var 변수 이름 = document.getElementsByName("지정한 name 명");



태그를 이용하여 불러오면 그 태그를 사용하는 모든 항목들이 배열 형태로 변수에 입력된다.


이 변수를 출력하면 태그가 어떤 속성들을 가지고 있는지 확인할 수 있고


속성은 매우 많기 때문에 암기하여 쓰기 보다는 이 기능을 통해서 원하는 속성을 불러오거나 변경하면 된다.



다음 예제를 확인해보자



<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	.area {
		border:1px solid red;
		height:100px;
	}
</style>
</head>
<body>
	<h1>HTML 태그에 접근하기</h1>
	<h3>아이디로 접근</h3>
	<div id="area1" class="area"></div>
	<!-- 보통 개발자가 id, 퍼블리셔가 class를 쓴다. -->
	<!-- id는 개발자들 끼리의 암묵적 약속으로 고유하게 단 하나의 대상만 가르킴 -->
	<button onclick="accessId();">아이디로 접근</button>
	<script>
		function accessId() {
			var area1 = document.getElementById("area1");

			area1.style.backgroundColor = "yellow";
			
			area1.innerHTML += "아이디로 접근 성공!<br>"
		}
	</script>
	
	<h3>태그명으로 접근</h3>
	<ul>
		<li>목록1</li>
		<li>목록2</li>
		<li>목록3</li>
		<li>목록4</li>
		<li>목록5</li>
	</ul>
	<button onclick="accessTagName();">태그명으로 접근</button>
	<script type="text/javascript">
		function accessTagName() {
			var list = document.getElementsByTagName("li");
			// li 태그는 여러개이기 때문에 getElements, s를 써서 복수형
			console.log(list);
			// F12의 브라우져 관리자 모드로 콘솔에 태그명 하나하나의 속성들을 확인하고
			// 이용해보자
			
			var changeColor = 50;
			
			/*
			for(var i in list){
				list[i].style.backgroundColor = "rgb(130, 220, " + changeColor + " )";
				changeColor += 50;
				
				// 이 반복을 사용하면 list 배열의 0~4번방의 li 값 뿐만 아니라  length라는 속성도 저장되어 있기 때문에
				// 마지막에 접근하려 하면 오류가 발생한다.
			}
			*/
			
			// 그러므로 일반 for문을 사용하여 해결해야 한다.
			for(var i = 0; i< list.length; i++){
				list[i].style.backgroundColor = "rgb(130, 220, " + changeColor + " )";
				changeColor += 50;
			}
		}
	</script>
	
	<hr>
	
	<h3>name으로 접근</h3>
	<form>
		<fieldset>
			<legend>취미</legend>
			<table>
				<tr>
					<td>
						<input type="checkbox" name="hobby" value="game" id="game">
						<label for="game">게임</label>
						<!-- for 속성을 맞춰서 설정하면 체크박스를 누르지 않고 글자를 눌러도 선택이 된다. -->
					</td>
					<td>
						<input type="checkbox" name="hobby" value="music" id="music">
						<label for="music">음악</label>
					</td>
					<td>
						<input type="checkbox" name="hobby" value="movie" id="movie">
						<label for="movie">영화</label>
					</td>
				</tr>
				<tr>
					<td>
						<input type="checkbox" name="hobby" value="money" id="money">
						<label for="money">돈벌기</label>
					</td>
					<td>
						<input type="checkbox" name="hobby" value="running" id="running">
						<label for="running">뛰기</label>
					</td>
					<td>
						<input type="checkbox" name="hobby" value="walk" id="walk">
						<label for="walk">걷기</label>
					</td>
				</tr>
			</table>
		</fieldset>
	</form>
	<div id="area2" class="area"></div>
	<button onclick="accessName();">name으로 접근</button>
	<script type="text/javascript">
		function accessName() {
			var hobby = document.getElementsByName("hobby");
			
			console.log(hobby);
			// 출력한 배열 값의 속성 중 checked가 현재 체크가 되어있는지 상태를 알려줌
			
			var checkItem = "";
			for(var i = 0; i < hobby.length; i++){
				if (hobby[i].checked == true) {
					checkItem += hobby[i].value + "선택함<br>";
				}
			}
			
			document.getElementById("area2").innerHTML = checkItem;
		}
	</script>
</body>
</html>


+ Recent posts