본문 바로가기

JSP

JQuery (이벤트)

▷ 버튼 등의 특정 대상에 대한 클릭 이벤트(기본)

    → $('선택자').click(함수(){});

 

특정 요소에 대한 조작 이벤트
    1. html()
       - HTML 문서에서 지정된 범위(선택자)안의 모든 요소를 가져오거나 추가하는 함수
       - 요소를 가져올 때 주석까지 포함해서 가져옴
       - 단, XML 문서를 대상으로 사용 불가
    2. text()
       - html() 함수와 달리 HTML 문서 및 XML 문서에서도 적용 가능
       - 모든 문자열을 가져오거나 추가 가능
       - 브라우저마다 줄바꿈이나 공백 등이 달라질 수 있음
    3. empty()
       - 지정된 선택자 내의 하위 요소 제거(비움)
    4. remove()
       - 지정된 선택자 및 선택자 내의 하위 요소 모두 제거

 

<%@ 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 src="../js/jquery-3.6.0.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
    
		// => 버튼 중 첫번째 버튼에 대한 클릭 이벤트 처리
// 		$('input[type=button]:first').click(function() {
// 			alert("시계 표시 버튼 클릭!");
// 		});
		
		// h3 태그 내의 HTML 요소 가져오기
// 		var h3Element = $('h3').html(); // 첫번째 h3 태그의 요소("제목1" 텍스트) 가져오기
// 		alert(h3Element);

		// id 선택자 #h3_2 인 태그의 모든 요소 가져오기
// 		var h3Element = $('#h3_2').html(); // 제목2&nbsp;<span>제목2-1</span>&nbsp;<span>제목2-2</span>
// 		alert(h3Element);
		
		// id 선택자 #h3_2 인 태그의 모든 텍스트 가져오기(공백 적용됨 = 눈에 실제 보이는 형태)
// 		var h3Text = $('#h3_2').text(); // 제목2 제목2-1 제목2-2
// 		alert(h3Element);
		
		// ------------------------------------------------------------
		// html() 함수를 호출하여 #h3_1 선택자의 요소 내용 바꾸기(= 태그 적용 가능)
		$('#h3_1').html('<i>italic 적용된 제목1</i>');
		
		// text() 함수를 호출하여 #h3_1 선택자의 요소 내용(텍스트만) 바꾸기(= 태그 적용 불가능)
// 		$('#h3_1').text('<i>italic 적용된 제목1</i>');
		
		// ------------------------------------------------------------
		// 모든 h3 태그의 텍스트에 내용 추가
		// => html() 함수 내에 익명 함수를 구현하여 함수 호출이 반복되도록 수행
		// => 이 때, index 파라미터는 해당 요소의 인덱스 번호가 전달되며
		//    oldHtml 파라미터는 해당 요소의 내용이 전달됨
// 		$('h3').html(function(index, oldHtml) {
// 			alert(index + ", " + oldHtml); // 각 인덱스에 해당하는 요소의 내용이 차례대로 출력
// 		});
		
		// 모든 h3 태그의 뒷부분에 "입니다" 텍스트 추가(= return 문 활용하여 값 설정)
		$('h3').html(function(index, oldHtml) {
			return oldHtml + " 입니다";
		});
		// ------------------------------------------------------------
		// empty() 함수를 사용하여 선택자 내의 하위 요소 제거
// 		$('#h3_2').empty(); // h3 태그는 남아있음
		
		// remove() 함수를 사용하여 선택자 및 선택자 내의 하위 요소 제거
		$('#h3_2').remove(); // h3 태그도 제거됨
		
		// TextArea 내부에 "wrap" id 선택자의 요소 출력
// 		$('#ta').val($('#wrap').html()); // 해당 태그에 값을 설정
		$('#ta').html($('#wrap').html()); // 해당 태그에 HTML 요소 설정(TextArea 는 동일함)
		
	});
	
	// =============================================================
	function getTime() {
		var now = new Date();
		var hour = now.getHours();
		var min = now.getMinutes();
		var sec = now.getSeconds();
		
		return hour + " : " + min + " : " + sec;
	}
	
	$(document).ready(function() {
		var isStop = false; // setInterval() 함수를 중단하기 위한 신호(true 가 되면 중단)
		
		// 시계 표시 버튼 클릭 시 현재 시각(getTime() 함수 리턴값)을 timer 선택자 위치에 표시
		$('input[type=button]:first').click(function() {
			isStop = false;
			
			// id 선택자가 timer 인 요소에 HTML 태그 출력
			$('#timer').html('<h1>' + getTime() + "</h1>");
			
			// 시계 표시를 1초마다 갱신
			setInterval(function() {
				
				// 단, 타이머 중단 신호(isStop)가 false 일 때만 타이머 갱신
				if(!isStop) {
					$('#timer').html('<h1>' + getTime() + "</h1>");	
				} else {
					// setInterval() 함수를 중단하기 위해서는 clearInterval() 함수 호출
					// => 이 때, 파라미터로 현재 함수(객체)를 전달
					clearInterval(this); // 익명함수이므로 자신(this)을 직접 전달
				}
			}, 1000);
		});
		
		// 시계 제거 버튼 클릭 시 timer 선택자 내의 요소 제거
		$('input[type=button]:last').click(function() {
			$('#timer').empty();
			// 타이머 중단하기 위해 중단 신호(isStop)을 true 로 변경
			isStop = true;
		});
		
	});
	
</script>
</head>
<body>
	<h1>jQuery/test4.jsp</h1>
	<div id="wrap">
		<!-- 제목을 출력하는 공간 -->
		<h3 id="h3_1">제목1</h3>
		<h3 id="h3_2">제목2&nbsp;<span>제목2-1</span>&nbsp;<span>제목2-2</span></h3>
		<h3 id="h3_3">제목3</h3>
	</div>
	<textarea id="ta" rows="5" cols="50"></textarea>
	<hr>
	<input type="button" value="시계 표시"> <input type="button" value="시계 제거">
	<div id="timer">
	<!-- 시계가 표시될 공간 -->
	</div>
</body>
</html>

※ <script src="../js/jquery-3.6.0.js"></script>

    $(document).ready(function() {}); 

이 두문장은 필수!

위 문장은 제이쿼리를 사용하기 위한 문장

밑에 문장은 안적으면 밑에 함수들이 시작이 안됌(document가 준비가 되면 코드 시작)

'JSP' 카테고리의 다른 글

JQuery (이벤트3)  (0) 2022.03.04
JQuery (이벤트2)  (0) 2022.03.04
Jquery (css()함수)  (0) 2022.03.04
JQuery (선택자)  (0) 2022.03.04
JQuery (사용방법)  (0) 2022.03.04