웹프로그래밍

JQuery 보강-22.06.07

AIN99 2022. 6. 7. 19:14
728x90
DOM(Document Object Model)
문서를 객체화 시킨 모델이다.
DOM에서는 엘리먼트를 찾아서 어떤 작업을 하는것 즉 중요한것은 대상이 되는 작업을 찾는것이 중요

<div>안녕하세요</div> 시작태그 안녕하세요: 컨텐츠 종료태그, 얘를 다 묶어서 엘리먼트(Element)

1. html문서를 웹브라우저가 읽어옴
2. 파싱 작업(문서 구조 분석)
3. DOM객체 생성(DOM Tree구성)
4. DOM을 이용해서 렌더링(화면출력)

<head>자식엘리먼트 존재(meta,title, link,style...)</head>

JQuery
$("셀렉터").명령()
셀렉터 : 명령을 내리고 싶은 어떤 엘리먼트(대상엘리먼트)

$("*") : 대상이 전체, jQuert객체 안에 셀렉터로 찾은 엘리먼트들이 배열형태로 저장된다.
$("div") : 현재 문서에 div를 찾아라
$("div").css("color","red");  : 속성이 div인 글자컬러 레드로 바꿔라
$("div.test")
$(".test"): *.test와 같음 모든엘리먼트중에 클래스가 test인것
$("p#test") : #: id,  같은문서상에서는 id속성은 중복되면 안된다. 만약에 중복됐다면 첫번째것을 찾는다.
            : $("#test")도 가능
$("p,div") : p태그도 찾고, div도 찾고 
$("p div") : p의 자손들중에 div를 찾아라 (자식도 자손도 찾음)
$("p>div") : p태그의 자식들중에서만 div를 찾아라
$("p+div") : p태그 바로 다음에 나오는 div인것을 찾아라, p태그의 형제 중 바로 밑에있는것 찾기
$("p~div") : p의 형제들중에 div를 전부 찾아라

<선택자>
$("form[name=facForm]"): 네임속성의 이름이 facForm인것 
$("form[name^=fac]") :네임속성이fac로 시작하는것
#("form[name*=cF]") :cF를 포함하는것
$("form[name~=exam]") : 띄어쓰기가 되어있는 각각의 단어와 일치하는것  즉 name="facForm examform exam"
$("form[name|=exam]") : name="facForm exam-form exam" 에서 찾을 수 있음

 var obj = {
      이름: "홍길동",
      나이: 25,
      성별: "남",
      주소: "서울시 양천구 목동",
      특기: ["농구", "도술"],
      가족관계: {아버지:"홍판서", 어머니:"춘섬"}
   };


obj.이름 ==>홍길동
obj.특기[0] ==>농구
obj.특기[1] ==>도술

obj.가족관계.아버지 ==>홍판서
obj.가족관계.어머니 ==>춘섬

var arr = [{
                     "이름" : "홍길동",
                     "tel" : "011-0044-4477",
                     "addr" : "대전 중구 용두",
                     "email" : "hong@ddit.or.kr"
                },
                {
                     "이름" : "임길동",
                     "tel" : "011-0044-4478",
                     "addr" : "대전 중구 오류동",
                     "email" : "yim@ddit.or.kr"
                },
                {
                     "이름" : "림길동",
                     "tel" : "011-0044-4499",
                     "addr" : "대전 중구 태평동",
                     "email" : "lim@ddit.or.kr"
                }
               ]

arr[1].이름 ==>임길동
arr[0].addr ==> 대전 중구 용두동
//배열갯수만큼 반복을 할때 arr의 데이터를 하나씩 넘겨주는데 i:배열의첨자 v: 배열의 데이터
//arr배열의 갯수만큼 실행되는데 한번 실행될 때마다 함수의 첫번째 변수에는 첨자가 전달되고, 두번째 변수에는 첨자번째 데이터가 전달된다.

$.each(arr, function(i,v){  
	result +=i+"번째 자료<br>";
    result +="이름:" +v.이름 +"<br>";
    result +="tel:" +v.tel +"<br>";
    result +="addr:" +v.addr +"<br>";
    result +="email:" +v.email +"<hr>";


});
-------------------------------------------------------------------------
var obj = {
      이름: "홍길동",
      나이: 25,
      성별: "남",
      주소: "서울시 양천구 목동",
      특기: ["농구", "도술"],
      가족관계: {아버지:"홍판서", 어머니:"춘섬"}
   };
//each 함수의 첫번째 값으로 '객체' 데이터를 주면
//객체의 속성(멤버변수) 개수만큼 반복하고, 반복 할 때마다 함수의 첫번째 변수에는 객체의 속성명이 전달되고,
//두번째 변수에는 해당 속성의 값이 전달된다.
$.each(obj, function(i,v){  i:나이 v:25
	result+=i + ":" +v +"<br>"

});
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(function(){
	var arr = [
		{
			"이름"	: "이길동",
			"tel"	: "011-0044-4477",
			"addr"	: "대전 중구 용두동",
			"email" : "hong@ddit.or.kr"
		},
		{
			"이름"	: "임길동",
			"tel"	: "011-0044-4478",
			"addr"	: "대전 중구 오류동",
			"email" : "yim@ddit.or.kr"
		},
		{
			"이름"	: "림길동",
			"tel"	: "011-0044-4499",
			"addr"	: "대전 중구 태평동",
			"email" : "lim@ddit.or.kr"
		}
	];
	
	var obj = {
			이름 : "홍길동",
			나이 : 25,
			성별 : "남",
			주소 : "서울시 양천구 목동",
			특기 : ["농구","도술"],
			가족관계 : {아버지 :"홍판서",어머니 :"춘섬"}
		};
	
	
	$("#testBtn").on("click", function(){
		var result = "";
		/*
		for(var i=0; i<arr.length; i++){
			result += i + "번째 자료<br>";
			result += "이름 :" + arr[i].이름 + "<br>";
			result += "tel :" + arr[i].tel + "<br>";
			result += "addr :" + arr[i].addr + "<br>";
			result += "email :" + arr[i].email + "<hr>";
		}
		*/
		
		/*
		// arr 배열의 개수만큼 실행되는데 한번 실행될  때 마다 
		//	함수의 첫번째 변수에는 첨자가 전달되고, 두번째 변수에는 첨자번째 데이터가 전달된다.
		$.each(arr, function(i,v){
			result += i + "번째 자료<br>";
			result += "-이름 :" + v.이름 + "<br>";
			result += "-tel :" + v.tel + "<br>";
			result += "-addr :" + v.addr + "<br>";
			result += "-email :" + v.email + "<hr>";
		});
		*/
		
		// each함수의 첫번째 값으로 '객체'데이터를 주면
		// 객체의 속성(멤버변수)개수만큼 반복하고, 반복 할 때마다
		// 함수의 첫번째 변수에는 객체의 속성명이 전달되고,
		// 두번째 변수에는 해당 속성의 값이 전달된다.
		$.each(obj, function(i,v){
			result += i + " : " + v + "<br>";
		});
		
		$("#result").html(result);
	});
	
});

</script>
</head>
<body>
<input type="button" value="확인" id="testBtn"><br>

<div id="result"></div>
</body>
</html>
728x90