본문 바로가기
[ Script ]/JAVA Script

[ JAVA Script ] jQuery

by 환이s 2023. 2. 25.

이전 포스팅으로 DOM에 대해서 알아봤습니다. 오늘은 javaScript DOM 작업을 쉽게 처리할 수 있도록 도와주는 jQuery에 대해서 포스팅해 보겠습니다!

 

 

■  jQuery란?

 

jQuery는 지금까지 배운 javaScript의 코드 형식과 차이점이 있습니다. 일단 두 개의 차이점에 대해서 먼저 설명하자면, 

javaScript 웹브라우저에서 작동하는 스크립트입니다. 기능을 포함하는 거의 모든 홈페이지들이 사용하고 있습니다.

jQuery 또한 javaScript입니다. 다만 javaScript로 빈번하게 사용되는 기능들은 조금 더 함축적인 코드를 통해 사용하게 만든 라이브러리입니다.

 

 

javaScript는 아래와 같이 크게 4가지 요소로 구성되어 있습니다.

 

  • javaScript core 문법
  • javaScript core 라이브러리
  • javaScript BOM(Browser Object Model)
  • javaScript DOM(Document Object Model)

 

앞서 말씀드린 것처럼 jQuery javaScript DOM작업을 쉽게 처리할 수 있도록 도와주는 라이브러리입니다. 하지만 jQuery는 DOM 작업을 쉽게 도와주는 라이브러리일 뿐, javaScript 문법이나 라이브러리를 대체하는 프로그래밍 언어가 아님을 인지해야 합니다.

 

■  jQuery 문법 ( $() 함수 )

 

jQuery의 기본 문법은 다음과 같습니다.

 

$(selector).함수({ });

$ : jQuery 에서 엘리먼트(태그) 접근에 사용

 

달러($) 기호는 jQuery를 의미하고, jQuery에 접근할 수 있게 해주는 식별자입니다.

선택자를 이용하여 원하는 HTML 요소를 선택하고, 동작 함수를 정의하여 선택된 요소에 원하는 동작을 설정합니다.

 

$() 함수선택된 HTML 요소를 jQuery에서 이용할 수 있는 형태로 생성해 주는 역할을 합니다.

 

$() 함수의 인수로는 HTML 태그 이름뿐만 아니라, CSS선택자를 전달하여 특정 HTML 요소를 선택할 수 있습니다.

이러한 $() 함수를 통해 생성된 요소를 jQuery Object라고 합니다.

 

선택자(selector) 사용예 : 

- $("#name") : id 가 name 인 태그를 선택
- 엘리먼트를 선택해 작업을 처리하기 위해 사용
- $( ) 안에는 태그명, 태그의 id 속성값, class 속성값 등이 올 수 있음

- 엘리먼트명 사용 : $("p")
- id 속성값 사용: $("#test")
- class 속성값 사용: $(".t1")

 

■  이벤트 처리

 

웹 페이지는 사용자와 수많은 상호작용을 합니다.

사용자는 마우스를 움직이거나, 요소를 클릭하거나, 텍스트 박스에 글을 쓰는 등 수많은 종류의 동작(action)을 수행합니다. 이러한 사용자의 동작들이 모두 이벤트(event)를 발생시킵니다.

 

정리하자면, 이벤트가 발생했다는 것은 웹 페이지에서 특정 동작이 발생하여 웹 브라우저가 그 사실을 알려주는 것을 의미합니다.

 

특정 요소에서 발생하는 이벤트를 처리하기 위해서는 이벤트 핸들러(event havdler)라는 함수를 작성하여 연결해야 합니다. 이벤트 핸들러가 연결된 특정 요소에서 지정된 타입의 이벤트가 발생하면, 웹 브라우저는 연결된 이벤트 핸들러를 실행하게 되는 원리입니다.

 

여기서 jQuery는 javaScript의 이벤트 핸들러와 동일하게 동작합니다. 오히려 javaScript에 비해 보다 편리하고 직관적인 event method를 이용해 보다 수월히 관리가 가능합니다.

 

- $(선택자).이벤트(함수); //한개의 이벤트 처리
- $(선택자).on(event,childSelector,data,function,map)
- $(선택자).one(event,data,function) 


- on  : 이벤트를 연결함
- one : 이벤트를 한번만 연결함
- click : 클릭 시 해당 이벤트 발생함.
- mouseover : 마우스를 요소 안에 들어올 때 발생함.(버블링)
- focus : 입력 양식에 초점을 맞추면 발생함.
- blur : 입력 양식에 초점이 사라지면 발생함.

 

jQuery의 이벤트 속성은 이벤트 메서드, 객체속성, 윈도우 이벤트, 마우스 이벤트 등 다양하게 있습니다.  후에 이벤트 관련 포스팅 참고해 보시면 좋을 거 같습니다.

 

그럼 간단한 예제를 통해 jQuery에 대해서 알아봅시다.

 

<예제 1>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>selector1</title>
<!-- 이 코드가 없으면 jquery가 실행되지 않음 -->
<script src="../include/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
// $ => jquery
// $(선택자).이벤트(콜백함수)
//$(function(){}); 약식표현
$(document).ready(function() { //현재 문서가 로딩되면 자동으로 실행(콜백함수),
	//<body onload="함수호출">과 같은효과
	$("h2").click(function() {
	$(this).hide();//클릭한 태그가 숨겨짐	
	});
	
});

</script>

</head>
<body>
<h2>첫번째 h2</h2>
<h2>두번째 h2</h2>
<h2>세번째 h2</h2>
</body>
</html>

 

■  애니메이션 효과 (효과 메서드)

 

jQuery에서 효과 메서드를 사용하면 스타일(CSS)을 사용하는 것보다 좀 더 역동적인 동작을 적용하여 객체를 화려하게 숨기거나 보이게 할 수 있습니다. 효과 메서드에는 CSS 속성을 바꾸는 메서드와 애니메이션 기능을 다루는 메서드가 있습니다.

 

show("slow") , show("fast")

hide() 숨기기

toggle() show/hide 를 교대로

animate() 애니메이션 효과

stop() 애니메이션 중지

fadeIn() 페이드인 효과

fadeOut() 페이드아웃 효과

slideUp() 슬라이드를 올림

slideDown() 슬라이드를 내림

 

예제를 통해서 애니메이션 효과를 알아봅시다.

아래 코드는 각 버튼을 클릭 시 이벤트가 발생하게 했습니다. 

 

<예제 2>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>show_hide</title>
<script src="../include/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
$(function() {
	$("#btnShow").click(function() {
		$("#img1").show("fast");//img1을 표시(빠르게)
	});
	$("#btnHide").click(function() {
		$("#img1").hide("fast");//숨김
	});
	$("#btnToggle").click(function() {
		$("#img1").toggle("fast");//show, hide 교대로 실행
	});
	$("#btnAnimate").click(function() {
		//좌에서 500, 위에서 200 위치로 5초동안 움직임 
		$("#img1").animate({
			left : '500px',
			top : '200px',
			opacity : '0.5',
		}, 5000);
	});
	$("#btnFadein").click(function() {
		$("#img1").fadeIn(5000, function() {
			$("#img2").fadeIn("slow");
		});
	});
	$("#btnFadeout").click(function() {
		$("#img1").fadeOut("slow");
	});
	$("#btnSlidedown").click(function() {
		$("#img1").slideDown("slow");
	});
	$("#btnSlideup").click(function() {
		$("#img1").slideUp("slow");
	});
	$("#btnChain").click(function() {
		$("#img1").show().fadeOut("slow").slideDown("slow");
	});
});
</script>
<style type="text/css">
#img1 {
	display: none; /* 숨김(자리차지X) */
	position: relative;
}
#img2 {
	display: none;
}

</style>
</head>
<body>
 <button id="btnShow">표시</button>
 <button id="btnHide">숨김</button>
 <button id="btnToggle">toggle</button>
 <button id="btnAnimate">애니메이션</button>
 <button id="btnFadein">페이드인</button>
 <button id="btnFadeout">페이드아웃</button>
 <button id="btnSlidedown">slide down</button>
 <button id="btnSlideup">slide up</button>
 <button id="btnChain">여러 효과</button>
 <hr>
 <img id="img1" src="../images/image.png">
 <img id="img2" src="../images/google.png">

</body>
</html>

 

■  jQuery를 이용한 DOM 변경

 

jQuery의 DOM 탐색은 CSS SELECTER를 사용하고 있어, CSS에 사용한 표현식을 알고 있다면 보다 쉽게 셀렉터를 이해할 수 있습니다.

jQuery에서는 원하는 HTML의 DOM 요소를 찾기 위해 $(Selector), jQuery(Selector)와 같은 표현식을 사용합니다.

 

jQuery에서 DOM 변경할 때 사용되는 속성은 아래와 같습니다.

- $(선택자).text() 텍스트를 가져옴

- $(선택자).text("변경할 내용") 텍스트 변경

- $(선택자).html() html 코드를 가져옴

- $(선택자).html("변경할 내용") html 코드를 변경

- $(선택자).val() 입력필드의 값을 가져옴

- $(선택자).val( "변경할 내용" ) 입력필드의 값을 변경함

- $(선택자).attr( "변경할 속성" ) 요소의 속성 가져오기

- $(선택자).append(" 추가할 요소 ") DOM 요소 추가

- $(선택자).remove() DOM 에서 삭제 처리

 

그럼 간단한 예제 코드에서 요소를 추가, 제거해 봅시다.

 

<예제 3>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>append_remove</title>
<script src="../include/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
$(function() {
	$("#button1").click(function() {
		//append("추가할 내용") 마지막에 추가
		$("ul").append("<li>레몬</li>");
	});
	$("#button2").click(function() {
		//prepend("추가할 내용") 시작부분에 추가
		$("ul").prepend("<li>레몬</li>");
	});
	$("#button3").click(function() {
		//h2 뒤에 추가
		$("h2").after("<marquee>hello</marquee>");
	});
	$("#button4").click(function() {
		//h2 앞에 추가
		$("h2").befor("<img src= '../im/tomato.jpg'>");
	});
	$("#button5").click(function() {
		//div를 모두 제거함
		$("#div1").remove();
	});
	$("#button6").click(function() {
		//div는 유지, 컨텐츠만 제거
		$("#div1").empty();
	});
});

</script>
</head>
<body>
<div id="div1" style="border : 1px solid red; height: 300px;">
	<h2>과일목록</h2>
	<ul>
	<li>사과</li>
	<li>포도</li>
	<li>배</li>
	</ul>
</div>
<button id="button1">append</button>
<button id="button2">prepend</button>
<button id="button3">after</button>
<button id="button4">before</button>
<button id="button5">remove</button>
<button id="button6">empty</button>

</body>
</html>

 

■  CSS 조작

 

jQuery에서 CSS 속성을 적용하는 방법은 아래의 코드를 참고 바랍니다.

 

- $(선택자).css("속성") CSS 속성 가져오기
- $(선택자).css("속성", "값") CSS 속성값 변경

 

예제를 통해서 알아봅시다.

 

예제 코드로는 로그인 화면에서 text에 포커스를 추가하고 css 속성을 추가했습니다.

 

<예제 4>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>focus_event</title>
<script src="../include/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
$(function() {
	//input태그에 포커스를 얻을 때(focus)
	$("input").focus(function() {
		//jQuery에서는 css속성이름이 그대로 쓰인다.
		$(this).css("background-color", "yellow");
		$(this).css("border" ,"3px dotted red");
	});
	//포커스를 잃을때(blur)
	$("input").blur(function() {
		$(this).css("background-color", "white");
		$(this).css("border" ,"1px solid black");
	});
});
</script>
</head>
<body>
아이디 : <input type="text" name="name"> <br>
패스워드 : <input type="text" name="pwd"> 
</body>
</html>

 


마치며

 

오늘은 jQuery에 대해서 알아봤습니다.

원래 jQuery 정식 표현법은 { $(document). ready(function() { //jQuery 코드 블록 }이지만

실무에서는 주로 약식표현 법을 사용합니다. { $( function() { //jQuery 코드 블록 // 실행할 코드 }); } 

앞서 말씀드린 것처럼 jQuery는 기능을 좀 더 함축적인 코드를 짤 수 있습니다.

 

그럼 다음 포스팅으로 뵙겠습니다.

 

 

 

 

728x90

'[ Script ] > JAVA Script' 카테고리의 다른 글

[ JAVA Script ] Mobile Web UI구현  (0) 2023.02.28
[ JAVA Script ] Ajax  (0) 2023.02.27
[ JAVA Script ] DOM  (0) 2023.02.24
[ JAVA Script ] 함수  (2) 2023.02.23
[ JAVA Script ] 기초 문법  (0) 2023.02.22