λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Study/JSP

[JSP] JQuery

by hong- 2022. 11. 18.

πŸ™πŸ» JQuery

μ‰½κ²Œ λ§ν•˜μžλ©΄ μ•„μ£Ό κ°„νŽΈν•˜κ²Œ HTML μš”μ†Œλ₯Ό μ„ νƒν•˜κ³  κ·Έλ ‡κ²Œ μ„ νƒλœ μš”μ†Œμ— νŠΉμ • λ™μž‘μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$(μ„ νƒμž).λ™μž‘ν•¨μˆ˜1( ).λ™μž‘ν•¨μˆ˜2( )

β‘  $

λ‹¬λŸ¬($) κΈ°ν˜ΈλŠ” jQueryλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

즉, jQuery에 μ ‘κ·Όν•  수 있게 ν•΄μ£ΌλŠ” μ‹λ³„μžλ₯Ό λœ»ν•˜μ—¬ μ΄λŸ¬ν•œ μ‹λ³„μžλ₯Ό μ΄μš©ν•˜μ—¬ μ›ν•˜λŠ” HTML μš”μ†Œλ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

β‘‘ μ„ νƒμž

μ›ν•˜λŠ” HTML μš”μ†Œ, CSS μš”μ†Œλ₯Ό μ„ νƒν•˜λ©° κ·Έ μš”μ†Œκ°€ μ„ νƒμžκ°€ λ©λ‹ˆλ‹€.

β‘’ λ™μž‘ν•¨μˆ˜

λ™μž‘ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜μ—¬ μ„ νƒμžλ‘œ μ„ νƒλœ μš”μ†Œμ— μ›ν•˜λŠ” λ™μž‘μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬λŸ¬ 개의 λ©”μ„œλ“œλ₯Ό μ—°μ†μœΌλ‘œ ν˜ΈμΆœν•˜λŠ” 'λ©”μ„œλ“œ 체이닝'이 κ°€λŠ₯ν•©λ‹ˆλ‹€.


πŸ“ JQueryλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

1) νŽ˜μ΄μ§€ λ‚΄λΆ€ μš”μ†Œμ— μ ‘κ·Όν•˜κΈ° 쉬움

 jQueryλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄ DOM 트리λ₯Ό μ΄μš©ν•΄μ„œ μš”μ†Œμ— μ ‘κ·Όν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜, jQueryλ₯Ό μ‚¬μš©ν•˜λ©΄ CSS의 μ„ νƒμžλ₯Ό μ΄μš©ν•΄μ„œ κ°„νŽΈν•˜κ²Œ 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

2) νŽ˜μ΄μ§€μ— λ³΄μ—¬μ§€λŠ” λͺ¨μŠ΅μ„ λ³€κ²½ν•˜κΈ° 쉬움

CSS도 jQueryλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°„κ²°ν•˜κ³  μ§κ΄€μ μœΌλ‘œ μž‘μ„±μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

3) μƒν˜Έμž‘μš© μ²˜λ¦¬κ°€ 쉽고 μ• λ‹ˆλ©”μ΄μ…˜ μ‚¬μš© κ°€λŠ₯

HTML λ¬Έμ„œμ˜ λͺ©μ μ€ νŽ˜μ΄μ§€μ˜ ꡬ쑰와 데이터λ₯Ό ν‘œν˜„ν•˜λŠ” 것 μž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ HTML νƒœκ·Έμ— 이벀트λ₯Ό μ‚¬μš©ν•˜λ©΄ 이 λͺ©μ κ³Ό μ–΄κΈ‹λ‚˜λ‹€κ³  ν• μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

λ•Œλ¬Έμ— jQueryλ₯Ό μ‚¬μš©ν•˜μ—¬ 이벀트λ₯Ό ν•Έλ“€λ§ν•˜λ©΄ HTML λ¬Έμ„œ λ³€κ²½ ν•„μš”μ—†μ΄ μ‰½κ²Œ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“ JQueryλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” [ jQuery 객체 ]κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

jQuery κ°μ²΄λŠ” λ‹€μ–‘ν•œ λ©”μ„œλ“œλ₯Ό κ°€μ§€μ§€λ§Œ μ „λΆ€ jQuery 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

 

1) CSS의 selectorλ₯Ό 인수둜 전달받을 λ•Œ

(1) $('#happy')             -> javascript.version = document.getElementById('happy')

(2) $('.happy')             -> javascript.version = document.querySelectorAll('.happy')
                                                    document.getElementsByClassName('happy')

(3) $('happy')              -> javascript.version = document.getElementsByTagName('happy')

2) selector 이벀트 등둝

λ§Œμ•½, HTML μ½”λ“œκ°€ λ‹€μŒκ³Ό 같을 경우

각 λ²„νŠΌμ— 이벀트λ₯Ό μ μš©ν•˜κΈ° μœ„ν•΄ ν•˜λ‚˜μ˜ μš”μ†Œλ§ˆλ‹€ 일일이 이벀트λ₯Ό 등둝해야 ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ 달리,

<button id="b1" class="btn"> button1 </button>
<button id="b2" class="btn"> button2 </button>
<button id="b3" class="btn"> button3 </button>

jQueryλŠ” λ‹€μŒκ³Ό 같이 μž…λ ₯ν•˜μ—¬ class 이름이 btn에 ν•΄λ‹Ήν•˜λŠ” μ—¬λŸ¬ 개의 λ²„νŠΌμ„ μžλ™μœΌλ‘œ μˆœνšŒν•΄μ„œ λ“±λ‘ν•΄μ€λ‹ˆλ‹€.

$('.btn').on('click', function() {...});
[jQuery]
$("p").on("click", function() {
     $("#jq").css("border", "2px solid orange");
 });
 
 
 [javaScript]
 document.querySelector("p").addEventListener("click", function() {
      document.querySelector("#jq".style.border = "2px solid orange"; })

3) HTML을 인수둜 μ „λ‹¬λ°›μœΌλ©΄ μƒˆλ‘œμš΄ HTML μš”μ†Œ 생성

$('<p id="test"> My <em> text </em></p>').appendTo('body');

4) AJAX μ‚¬μš©μ΄ 쉬움


πŸ“ JQuery μ‚¬μš© μ—°μŠ΅

<body>
    <ul id="nav">
       <li> HTML </li>
       <li> CSS </li>
       <li> javascript </li>
       <li class = "selected"> jQuery </li>
    </ul>
</body>

Q. μžμ‹ λ…Έλ“œμΈ li μš”μ†Œλ“€μ„ κ°€μ Έμ™€μ„œ ν΄λ¦­ν•˜λ©΄ 클래슀 이름을 [selected]둜 λ°”κΎΈκΈ°

$("#nav li").on("click", function() {
    $("nav li").removeClass('selected');
    $(this).addClass('selected');
})

1) ul의 μžμ‹λ“€μΈ liλ₯Ό μžλ™μœΌλ‘œ ν•˜λ‚˜μ”© 등둝

2) removeClassλŠ” 클래슀λ₯Ό μ‚­μ œμ‹œν‚€λŠ” λ©”μ„œλ“œ

3) addClassλŠ” 클래슀λ₯Ό μΆ”κ°€ν•˜λŠ” λ©”μ„œλ“œ

4) μ—¬κΈ°μ„œ thisλŠ” 클릭 μ΄λ²€νŠΈμ— λ“±λ‘λœ liλ₯Ό μ•Œμ•„μ„œ 가리킴

'Study > JSP' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JSP] DataTables  (0) 2022.11.22
[JSP] ObjectMapper  (0) 2022.11.18
[JSP] Mybatis  (0) 2022.11.18
[JSP] JSTL  (0) 2022.11.18
[JSP] Ajax  (0) 2022.11.18