[JS Library] jQuery

์†Œ์ด๋Žยท2023๋…„ 11์›” 7์ผ
0

JS Library

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

๐Ÿ“ jQuery

  • JavaScript ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.
  • JavaScript๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

๐Ÿ“ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • CDN ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•: ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋‹ค์šด๋กœ๋“œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•œ๋‹ค.
  • ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๐Ÿšฉ BootStrap๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, BootStrap์—์„œ ๊ฐ€์ ธ์˜ค๋Š” script ํƒœ๊ทธ์— jQuery๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์ฃผ์˜ํ•œ๋‹ค.
  • ๐Ÿšฉ head ํƒœ๊ทธ ๋‚ด๋ถ€์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ํŽ˜์ด์ง€ ๋‚ด์šฉ์ด ๋กœ๋”ฉ๋˜๊ธฐ ์ „์ด๋ฏ€๋กœ ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ready ์ด๋ฒคํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๐Ÿšฉ body ํƒœ๊ทธ ๋‚ด๋ถ€์˜ ํ•˜๋‹จ์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ํŽ˜์ด์ง€ ๋‚ด์šฉ์ด ๋กœ๋”ฉ๋œ ํ›„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค.

1) CDN ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

jQuery CDN ์‚ฌ์ดํŠธ์—์„œ ์ฝ”๋“œ ๋ณต์‚ฌ ํ›„ ๋ถ™์—ฌ ๋„ฃ์–ด ์‚ฌ์šฉํ•œ๋‹ค.

<script src="https://code.jquery.com/jquery-3.7.1.js" integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>

2) ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

jQuery ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ์—์„œ JSํŒŒ์ผ์„ ๋ฐ›์€ ํ›„ ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

<script src="ํŒŒ์ผ ๊ฒฝ๋กœ"></script>

๐Ÿ“ jQuery๋กœ DOM tree์˜ Node ๊ฐ€์ ธ์˜ค๊ธฐ

  • id๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
  • class๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ํƒœ๊ทธ ์ด๋ฆ„๊ณผ name ์†์„ฑ์œผ๋กœ Node ๊ฐ€์ ธ์˜ค๊ธฐ
  • check ๋œ Node๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ
<input type="checkbox" id="shiba" class="cat" name="animal" checked />
<input type="checkbox" id="bengal" class="cat" name="animal" />

1) id๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

$('#shiba')

2) class๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

$('.cat')

3) ํƒœ๊ทธ ์ด๋ฆ„๊ณผ name ์†์„ฑ์œผ๋กœ Node ๊ฐ€์ ธ์˜ค๊ธฐ

$('input[name="animal"]')

4) check ๋œ Node๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ

  • ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ€ checked์ธ ๋…ธ๋“œ๋“ค์ด ์•„๋‹Œ, ํ˜„์žฌ check ์ƒํƒœ์ธ ๋…ธ๋“œ๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค.
$('input[name="animal"]:checked')

๐Ÿ“ ์ด๋ฒคํŠธ

1) ๋ฌธ์„œ ๋กœ๋”ฉ ์ด๋ฒคํŠธ

  • head ํƒœ๊ทธ ๋‚ด๋ถ€์— jQuery script ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
์ด๋ฒคํŠธ ์ข…๋ฅ˜์„ค๋ช…
readyDOM tree๊ฐ€ ์™„์„ฑ๋œ ์ƒํƒœ
loadimage๋‚˜ css๊ฐ€ ๋ชจ๋‘ load ๋œ ์ƒํƒœ(ready๋ณด๋‹ค ์ดํ›„ ์‹œ์ )
error์š”์†Œ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ
<head>
  <script>
    $(document).ready(function() {
      // DOM tree ๊ตฌ์„ฑ ์™„๋ฃŒ
      // jQuery ์ฝ”๋“œ ์ž‘์„ฑ
	});
  </script>
</head>

2) ๋งˆ์šฐ์Šค ๋™์ž‘ ์ด๋ฒคํŠธ

  • this๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
์ด๋ฒคํŠธ ์ข…๋ฅ˜์„ค๋ช…
click์š”์†Œ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ
dbclick์š”์†Œ๋ฅผ ๋”๋ธ”ํด๋ฆญํ–ˆ์„ ๋•Œ
mouseleave์š”์†Œ์—์„œ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ
hover์š”์†Œ์— ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ, ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ
scroll๊ฐ€๋กœ, ์„ธ๋กœ ์Šคํฌ๋กค๋ฐ”๋ฅผ ์›€์ง์ผ ๋•Œ
keydownํ‚ค๋ณด๋“œ์˜ ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ
keypressํ‚ค๋ณด๋“œ์˜ ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ (์•„์Šคํ‚ค ๋ฌธ์ž์—๋งŒ ํ•ด๋‹น)
keyupํ‚ค๋ณด๋“œ์˜ ํ‚ค๋ฅผ ๋ˆŒ๋ €๋‹ค ๋†“์„ ๋•Œ
input์ž…๋ ฅ ํ•„๋“œ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ (ํ…์ŠคํŠธ ์ž…๋ ฅ, ์ฒดํฌ๋ฐ•์Šค ๋“ฑ)
$(selector).on('click', function() {
    $(this).hide(); // this == selector
})

๐Ÿ“ ์…€๋ ‰ํ„ฐ jQuery ํ•จ์ˆ˜๋“ค

ํ•จ์ˆ˜๋ช…์„ค๋ช…
val()์š”์†Œ์˜ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
val('text')์š”์†Œ ์†์— 'text' ๊ฐ’ ๋„ฃ๊ธฐ
text('text')ํƒœ๊ทธ ์‚ฌ์ด์— 'text' ๊ฐ’ ๋„ฃ๊ธฐ
show()์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
hide()์š”์†Œ๋ฅผ ์ˆจ๊ธด๋‹ค.
hasClass('ํด๋ž˜์Šค๋ช…')์š”์†Œ์— ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
addClass('ํด๋ž˜์Šค๋ช…')์š”์†Œ์— ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
removeClass('ํด๋ž˜์Šค๋ช…')์š”์†Œ์— ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
css('์†์„ฑ๋ช…')์š”์†Œ์— css ์†์„ฑ๋ช…์œผ๋กœ ์†์„ฑ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
css('์†์„ฑ๋ช…', '์†์„ฑ๊ฐ’')์š”์†Œ์— css ์†์„ฑ๊ณผ ๊ฐ’์„ ์„ธํŒ…ํ•œ๋‹ค.
attr('์†์„ฑ๋ช…')์†์„ฑ๋ช…์— ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
attr('์†์„ฑ๋ช…', '์†์„ฑ๊ฐ’')ํ•ด๋‹น ์†์„ฑ๋ช…์— ์†์„ฑ๊ฐ’์„ ๋ถ€์—ฌํ•œ๋‹ค.
ex) $("a").attr("href", "http://google.com")
=> a ํƒœ๊ทธ์˜ ๋งํฌ๋ฅผ google ์‚ฌ์ดํŠธ๋กœ ์„ค์ •
prop('ํ”„๋กœํผํ‹ฐ๋ช…', boolean)ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•œ ์„ค์ •(checked, selected, disabled)
ex) $("input").prop("checked", true);
=> input ํƒœ๊ทธ์— ์ฒดํฌ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

๐Ÿ“ jQuery๋กœ data-* ์†์„ฑ์— ์ ‘๊ทผํ•˜๊ธฐ

  • HTML ํƒœ๊ทธ์— data-*๋กœ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • data-*๋Š” ๋ฐ˜๋“œ์‹œ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • jQuery์—์„œ๋Š” .data("*")๋กœ ์ ‘๊ทผํ•œ๋‹ค.
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
$( "div" ).data( "role" ) === "page";
$( "div" ).data( "lastValue" ) === 43;
$( "div" ).data( "hidden" ) === true;
$( "div" ).data( "options" ).name === "John";

0๊ฐœ์˜ ๋Œ“๊ธ€