본문 바로가기

JSP

JQuery

○ JQuery

제이쿼리를 사용하면 아주 간편하게 HTML 요소를 선택하고, 그렇게 선택된 요소에 손쉽게 특정 동작을 설정할 수 있다
제이쿼리는 자바스크립트 라이브러리이므로, 제이쿼리 파일은 자바스크립트 파일(.js 파일) 형태로 존재한다
웹 페이지에서 제이쿼리를 사용하기 위해서는 제이쿼리 파일을 먼저 웹 페이지에 로드해야한다

 

  1. 제이쿼리 파일을 다운받아 로드하는 방법
  2. CDN(Content Delivery Network)을 이용하여 로드하는 방법

<script src="/파일 경로/제이쿼리 파일명.js"></script>

<script src="제이쿼리 URL"></script>

 

 

 

△ 기본 문법

 

$(선택자).동작함수();

 

달러($) 기호는 제이쿼리를 의미하고, 제이쿼리에 접근할 수 있게 해주는 식별자이다
달러 기호 대신 jquery를 사용할 수 있다
선택자를 이용하여 원하는 HTML 요소를 선택하고, 동작함수를 정의하여 선택된 요소에 원하는 동작을 설정한다

 

 

■ $() 함수

$() 함수는 선택된 HTML 요소를 제이쿼리에서 이용할 수 있는 형태로 생성해 주는 역할을 한다
$() 함수의 인수로는 HTML 태그 이름뿐만 아니라, CSS 선택자를 전달하여 특정 HTML 요소를 선택할 수 있다
이러한 $() 함수를 통해 생성된 요소를 제이쿼리 객체(JQuery Object)라고 한다

 

 

 

■ Document 객체의 ready() 메소드

자바 스크립트 코드는 웹 브라우저가 문서의 모든 요소를 로드한 뒤에 실행되어야 한다
보통은 별다른 문제가 발생하지 않지만, 다음과 같은 경우에는 오류가 발생한다

 

1. 아직 생성되지 않은 HTML 요소에 속성을 추가하려고 할 경우

2. 아직 로드되지 않은 이미지의 크기를 얻으려고 할 경우

 

 

자바 스크립트에서는 Window 객체의 onload() 메소드를 이용하여 문서가 모두 로드된 뒤에 코드가 실행되도록 설정한다
제이쿼리에서는 Document 객체의 ready() 메소드를 이용하여 같은 결과를 보장한다

 

 

$(document).ready(function() {
         제이쿼리 코드;
});

 

 

이것을 더 짧게 줄이자면

=>

 

$(function() {
       제이쿼리 코드;
});

 

 

 

○ 요소 선택

 

■ CSS 선택자를 이용한 선택

제이쿼리에서는 CSS 선택자를 사용하여 HTML 요소를 선택할 수 있다
태그 이름을 사용해서 같은 태그 이름을 가지는 HTML 요소를 모두 선택할 수 있다

 

 

$(function() {
     $("p").on("click", function() {  //<p> 태그를 모두 선택함
         $("span").css("font-size", "20px");  //<span> 태그를 모두 선택함
     });
});

 

 

id를 사용하여 특정 HTML 요소를 선택할 수도 있고, class를 사용하여 같은 클래스에 속하는 HTML 요소를 모두 선택할 수 있다
속성(attribute)를 사용하여 속성이 조건에 맞는 특정 HTML 요소를 선택할 수도 있다

 

 

 

■ JQuery 선택자를 이용한 선택

제이쿼리에서는 CSS 선택자뿐만 아니라 몇몇 비표준 선택자까지도 사용할 수 있다
이러한 비표준 선택자를 사용하면 선택한 요소를 저장하거나, 그 결과에 대해 필터링까지 할 수 있다

 

 

▲ 셀렉터

 

id, class, tag로 선택

  • * : 모든 태그를 선택한다
  • #id : 지정한 아이디로 태그를 선택한다
  • .class : 지정한 클래스로 태그를 선택한다
  • .class,.class : 지정한 두 클래스 중 하나라도 해당되는 태그를 선택한다
  • element : 태그 이름으로 선택한다
  • el1,el2,el3 : 태그 이름들로 선택한다

 

처음, 마지막, 홀수, 짝수 선택

  • :first - 첫번째 태그를 선택한다
  • :last - 마지막 태그를 선택한다
  • :even - 짝수 태그를 선택한다
  • :odd - 홀수 태그를 선택한다

 

태그 간 관계에 따른 선택

  • parent > child : 부모 태그 바로 밑의 자식 태그를 선택한다
  • parent descendant : 부모 태그 밑의 자손 태그를 선택한다(부모 태그 안에만 있으면 된다)
  • element+next : 지정한 태그의 바로 다음의 태그를 선택한다
  • element~siblings : 지정한 태그의 다음에 있는 태그 모두를 선택한다

 

비교에 따른 선택

  • :eq(n) - 선택한 태그 중에서 인덱스가 n인 태그를 선택한다
  • :gt(n) - 선택한 태그 중에서 인덱스가 n보다 큰 태그를 모두 선택한다
  • :lt(n) - 선택한 태그 중에서 인덱스가 n보다 작은 태그를 모두 선택한다
  • :not(선택자) - 선택한 태그 중에서 지정한 선택자와 일치하지 않는 태그를 모두 선택한다

 

태그 등에 따른 선택

  • :has(선택자) - 선택한 태그 중에서 지정한 선택자와 일치하는 자손 태그를 갖는 태그를 모두 선택한다
  • :empty - 선택한 태그 중에서 자식 태그를 가지고 있지 않은 태그를 모두 선택한다

 

input 태그의 선택

  • :checked - type 속성값이 "checkbox" 또는 "radio"인 요소 중에서 체크되어 있는 태그를 모두 선택한다
  • :text - type 속성값이 "text"인 태그를 선택한다
  • :button - type 속성값이 "button"인 태그를 선택한다

 

attribute에 따른 선택

  • [attribute] : attribute를 가지고 있는 태그를 선택한다
  • [attribute=value] : attribute가 value인 태그를 선택한다
  • [attribute!=value] : attribute가 value가 아닌 태그를 선택한다
  • [attribute$=value] : attribute의 마지막 글자가 value인 태그를 선택한다
  • [attribute^=value] : attribute가 value로 시작되는 태그를 선택한다
  • [attribute*=value] : attribute안에 value가 들어있는 태그를 선택한다

 

△ 선택한 요소의 저장

제이쿼리에서는 선택한 요소들을 변수에 저장하여 사용할 수 있다

 

var items = $("li"); //<li> 요소를 모두 선택하여 변수 items에 저장함

 

하지만 이렇게 저장된 요소들은 변수에 저장될 당시에 요소들만 저장된다
즉, 요소가 저장된 이후에 문서에 추가되거나 삭제된 요소들을 자동으로 갱신하지 않는다

 

 

 

○ 메서드

  • .attr() 메서드 : 선택한 요소의 특정 속성값을 반환하거나 설정하기 위해 사용한다

$(function() {
     $("button").click(function() {
     1번
     //<img> 태그의 src 속성값을 읽어오는 getter 메소드
     var imgSrc = $("img").attr("src");


     2번
     //<img> 태그의 src 속성값을 새로운 값으로 설정하는 setter 메소드
     $("img").attr("src", "이미지 경로");
     });
});

 

1번 라인에서는 .attr() 메소드에 인수를 하나만 전달하여, 해당 HTML 요소에서 인수로 전달받은 이름의 속성값을 읽어오는 getter 메소드로 사용하고 있다


2번 라인에서는 .attr() 메소드에 인수를 두 개 전달하여, 해당 HTML 요소에 첫번째 인수로 전달받은 이름의 속성값을 두번째 인수로 전달받은 값으로 설정하는 setter 메소드로 사용하고 있다

 

 

■ 대표적인 getter 메소드와 setter 메소드

요소에 접근하여 요소의 값을 읽거나 설정할 수 있도록 해주는 대표적인 getter 메소드와 setter 메소드

 

  • .html() : 해당 요소의 HTML 컨텐츠를 반환하거나 설정한다
  • .text() : 해당 요소의 텍스트 컨텐츠를 반환하거나 설정한다
  • .attr() : 해당 요소의 명시된 속성의 속성값을 반환하거나 설정한다
  • .val() : <form> 요소의 값을 반환하거나 설정한다

 

 

○ 요소 추가

새로운 요소나 컨텐츠를 손쉽게 추가할 수 있도록 여러 메소드를 제공한다

 

■ 기존 요소의 내부에 추가

기존 요소의 내부에 새로운 요소나 컨텐츠를 추가할 수 있다

 

  • .append() : 선택한 요소의 마지막에 새로운 요소나 컨텐츠를 추가한다
  • .prepend() : 선택한 요소의 처음에 새로운 요소나 컨텐츠를 추가한다
  • .appendTo() : 선택한 요소를 해당 요소의 마지막에 삽입한다
                       $(#firstItem").appendTo("#list"); => id가 list인 요소의 맨 마지막에 id가 firstItem인 요소를 추가한다
  • .prependTo() : 선택한 요소를 해당 요소의 처음에 삽입한다

'JSP' 카테고리의 다른 글

JSTL Function Tag  (0) 2020.07.13
JSTL XML Tag  (0) 2020.07.13
JSTL SQL Tag  (0) 2020.07.13
JSTL Formatting Tag  (0) 2020.07.13
JSTL Core Tag  (0) 2020.07.12