국비학원/공부

5일차 jsp(Array) ~ DOM

mikan- 2023. 4. 28. 13:46

# Array

 <head>
  <meta charset="UTF-8">
  <title>1. 배열(Array)의 개요 및 작성법.html</title>
	<script>
		/*
			자료형(type) : 저장되는 데이터의 크기와 범위를 지정해줌
			배열(Array) : 1. 같은 자료형의 변수들의 집합체 (ex var name = "홍길동"
																	       var age = "23")
							   2. 연속적으로 잡혀져 있는 공간(아파트, 계란, 기차)
																	ex) 성적처리 : 과목 수, 총 점, 평균, 등 수(석차)
							단점 : 1. 변수의 개수가 많아짐(기억하기 힘듦)
									2. 메모리에 랜덤(무작위로 저장) = 위치파악에 시간이 걸림
							형식 : 배열이름(변수의 대표적이름) = new Array(값1,값2,값3....)
		*/
		var a = new Array("배열","인덱스","길이","추가");
		//								0		 1		   2		3
		document.write("배열의 길이 -> "+a.length+"<br>"); // 배열명, 속성명

		var a2 = new Array("21c", "자바스크립트 응용");	// 배열명(a).concat(배열명)
		document.write("합친내용 -> "+a.concat(a2)+"<br>");

		a3 = new Array(30, 10, 50, 40, 20);	// 정렬 : 오름차순 (10,20,30,40,50)
																//			내림차순 (50,40,30,20,10)
		document.write("sort(정렬) -> " +a3.sort()+"<br>");
		document.write("reverse(역정렬) -> " +a3.reverse()+"<br>");

		// var 배열명 = [요소1, 요소2, 요소3.....] 배열명[인덱스번호]
		var a4 = ["포도", "사과", "바나나"]
		document.write(a4[0] + " 0번째 과일<br>");
		a4[1] = "감";	// 배열명[인덱스번호] = 새로 저장할 값
							// 사과 -> 감 변경
		document.write("사과가 원래 1번째 과일이였는데 " + a4[1] + " 으로 바뀌었네<br>");

		//배열명.push(새로 저장할 값)
		a4.push("배");
		console.log(a4);
		document.write("배열의 길이 -> "+a4.length+"<br>");
		document.write("sort(정렬) -> " +a4.sort()+"<br>");
		document.write("reverse(역정렬) -> " +a4.reverse()+"<br>");
	</script>
 </head>
 <body>
  
  </body>

 

 

# Radio

<head>
  <meta charset="UTF-8">
  <title>2. Radio.html</title>
	<script>
		function test() {
			// 1. 만약에 1.gif를 선택했다면 (=체크 했다면 checked)
			if(document.myForm.ok[0].checked == true) {
				alert("1번째 확인");
			} else if (document.myForm.ok[1].checked == true){
				alert("2번째 확인");
			} else if (document.myForm.ok[2].checked == true){
				alert("3번째 확인");
			} else{
				alert("선택을 하세요.");
			}
			
		}
	</script>
 </head>
 <body>
	<form name = "myForm">
		마음에 드시는 그림을 선택하세요.<p>
		<!--
			여러개의 항목 이지만 하나밖에 선택을 할 수 없는 경우 = 배열(같은 변수명을 사용)
			ok = new Array("1.gif", "2.gif", "3.gif"); -> ok[0], ok[1], ok[2]
												or
			ok = ["1.gif", "2.gif", "3.gif];
		-->
		
		<input type = "radio" name = "ok">1.<img src = "../images/1.gif"><p>
		<input type = "radio" name = "ok">2.<img src = "../images/2.gif"><p>
		<input type = "radio" name = "ok">3.<img src = "../images/3.gif"><p>
		<input type = "button" name = "ok" value = "확인(결재)" onclick = "test()">
	</form>
  </body>

 

 

# Checkbox

<head>
  <meta charset="UTF-8">
  <title>3. Checkbox.html</title>
	<script>
		function test() {
			// 1. 만약에 1.gif를 선택했다면 (=체크 했다면 checked)
			var sel = "";	// 선택한 그림을 저장할 변수(문자열 형태로)
			// 제어문내부에 또 다른 제어문 (중첩 if)
			if((document.myForm.a1.checked == false) && (document.myForm.a2.checked == false) && (document.myForm.a3.checked == false)){
				alert("최소 하나마 이상 선택 하세요.");
			} else{ // 한개이상 선택한 경우 (1),(2),(3),(1,2),(1,3),(2,3),(1,2,3)
				if(document.myForm.a1.checked) {	// == true 는 생략 가능
					sel += " 1번";	// "" + "1번" -> "1번" 대입연산자
					console.log(sel);
				} if (document.myForm.a2.checked == true){
					sel = sel +" 2번";	// "1번 2번"
					console.log(sel);
				} if (document.myForm.a3.checked == true){
					sel = sel + " 3번";	// "1번 2번 3번"
					console.log(sel);
				} 
				alert(sel + " 그림이 마음에 드시는 군요!");
			}
			
		}
	</script>
 </head>
 <body oncontextmenu = "return false" ondragstart = "return false" onselectstart = "return false">
 <!--
	화면디자인한 이미지, 글을 마우스 오른쪽버튼&드래그&드롭 금지
	oncontextmenu = "return false" : 마우스 우클릭 금지
	ondragstart = "return false" : 마우스 드래그 금지
	onselectstart = "return false" : 선택(블럭지정) 금지
 -->
	<form name = "myForm">
		마음에 드시는 그림을 선택하세요.<p>
		<!--
			checkbox 는 여러개를 동시에 선택이 가능(각각 따로 저장하는 변수가 필요함)
		-->
		
		<input type = "checkbox" name = "a1">1.<img src = "../images/1.gif"><p>
		<input type = "checkbox" name = "a2">2.<img src = "../images/2.gif"><p>
		<input type = "checkbox" name = "a3">3.<img src = "../images/3.gif"><p>
		<input type = "button" name = "ok" value = "확인(결재)" onclick = "test()">
	</form>
  </body>

 

 

# Select

<head>
  <meta charset="UTF-8">
  <title>4. Select.html</title>
	<script>
		function fg_color(form) {	// form = document.f_list.form;
			var list = form.selectedIndex;	// 전달O -> 코딩이 복잡하지않고 단순해짐
			//var list = document.f_list.form.selectedIndex
		/*
			document.fgColor(=글자색(전경색)<->bgColor(배경색)=선택한색깔)
			document.f_list.form.options[내가 선택한 인덱스번호].text(겉의 이름)
			document.f_list.form.options[내가 선택한 인덱스번호].value(내부 이름)
		*/
			//alert(document.f_list.form.options[f_list.form.selectedIndex].text)
			//alert(form.options[list].value); // 매개변수o
			//document.fgColor=form.options[list].value;
			document.bgColor=form.options[list].value;
		}
	</script>
 </head>
 <body>
	<center>
		<h3>글자색 변경하기</h3>
		원하시는 색상을 선택 하시면 선택한 색으로 글자색이 변경됩니다.<p>
		<form name = "f_list">
			<select name = "form" onchange = "fg_color(document.f_list.form)">
			<!-- 
				list박스 작성 하는 방법 : size = "항목수"
				list박스 에서 한꺼번에 여러개 항복을 선택 : multiple (shift, ctrl 다중선택)

				text속성(겉의 이름), value속성(내부적인 이름)

				*같은 태그가 여러개 나오면 배열
			
			<select name ="form" size = 4 multiple>
			-->
				<option value = "blue">파란색</option>
				<option value = "green">초록색</option>
				<option value = "orange">오렌지색</option>
				<option value = "gray">회색</option>
			</select>
		</form>
	</center>
  </body>

 

 

# DOM

<head>
  <meta charset="UTF-8">
  <title>6. DOM을 이용해서 버튼을 동적으로 생성하기(2).html</title>
	<script>
		var count = 0; // 전역변수 : 함수 밖에 선언된 변수(전체 프로그램에서 다 사용되는 변수)
							  //  div 태그를 생성할 개수

		function appendItem(){ // 추가
			// alert("ㅎㅇ");
			count = count +1; // count += 1 -> count++;
			// 1. div태그생성 : <div></div>, <h1></h1>
			//				형식 : document.createElement(생성할 태그명)
			var newItem = document.createElement("div");
			//alert(newItem);
			// 2. <div id = "item_" + 생성한번호></div>
			//				형식 : 생성된태그명.setAttribute(만들속성명, 속성값)
			newItem.setAttribute("id", "item_"+count); // <div id = "item_1"></div>
			// 3. 텍스트노드생성
			//				3-1. createTextNode함수(내용이 적을때)
			//				3-2. innerHTML속성(긴 문장을 쓸때)
			// <시작>내용</종료>, <시작></종료> = <시작 />
			var html = '새로 추가된 아이템['+count+']'+'<input type = "button" value = "삭제" '+' onclick = "removeItem('+count+')" />';
			// 4.	결합 : newItem.innerHTML = '저장할값';
			newItem.innerHTML = html;	// <div id = "item_1">새로 추가된 아이템</div>
			// 5. 부모태그의 정보 얻어오기
			var itemListNode = document.getElementById("itemList");
			// 6. 자식태그 추가 : 부모태그명.appendChild(자식태그명)
			itemListNode.appendChild(newItem);	// 시각화
		}
		//삭제시키는 태그를 호출하는 함수
		function removeItem(idCount) {
			//삭제시킬 태그 정보
			var item = document.getElementById("item_"+idCount);	//item_1
			//alert(item);
			// appendChild<->부모태그명.removeChild(삭제시킬 태그명)
			// 부모태그를 얻어오는 방법 2 : 자식태그명.parentNode = 부모태그
			//										id를 모를때 사용
			item.parentNode.removeChild(item);
		}
	</script>
 </head>
 <body>
 <!-- 
		정적 디자인 : html, css (있는 그대로 보여주는 디자인 방법)
		동적 디자인 : 처음에는 없는데 이벤트를 발생시켜서 화면에 특정영역에 출력
						시키는 방법(메모리에 저장해서 최종적으로 출력함)
 -->
	<input type="button" value="추가" onclick="appendItem()">
	<div id = "itemList">
		<!--
		<div id = "item_"+1>새로 추가된 아이템1[삭제버튼]</div>
		-->
	</div>
  </body>

'국비학원 > 공부' 카테고리의 다른 글

7일차 jsp ~ oracle 설치  (1) 2023.05.04
6일차 jsp(미니 프로젝트)  (0) 2023.04.28
4일차 jsp(2)  (0) 2023.04.24
3일차 css(2) ~ javascript(jsp)  (0) 2023.04.23
2일차 css ~ div  (0) 2023.04.20