
jQuery ๋?
JavaScript์ Library(๋ผ์ด๋ธ๋ฌ๋ฆฌ) ์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฃผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ์ง์ ๊ตฌํ์ด ์ด๋ ค์ด ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ชจ์๋์ ํ๋ก๊ทธ๋จ์ผ๋ก
JS ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ jQuery, RequireJS, Prototype, AngluarJS, Backbone ๋ฑ์ด ์๋ค.
๊ตณ์ด jQuery๋ฅผ ์ ์ฌ์ฉํ ๊น?
1. ์ฌ์ฉ์ด ํธ๋ฆฌํ๋ค.
2. Cross Browsing
- java๋ jdk๋ฅผ ๊น์์ ์ฌ์ฉํ๋๋ฐ js๋ ๋ฐ๋ก ์ค์นํ๋ ๊ฒ ์์ด ์์์ ๋์๊ฐ๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ์ jsํด์๊ธฐ๊ฐ ๋ถ์ด์๋ค๋ ๋ป์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ด ํด์๊ธฐ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ข
๋ฅ๋ ๋ฒ์ ๋ง๋ค ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ์์ด ๋ถํธํ๋ค.
- jQuery๋ ๋ด๋ถ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ค์ ์ฒ๋ฆฌ๋ฅผ ํด๋์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์๋ค.
3. ๋ค์ํ Plugin
- jQuery๋ฅผ ๊ธฐ์ด๋ก ํ๋ ์ ์ฉํ plugin์ด ๋ง๋ค.
- Bootstrap, jQuery UI, Pagination ๋ฑ
- pagination์ ๋์ค์ spring?ajax์์ ๋ฐฐ์ธ paging ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ํ๋ค.
jQuery์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํน์ ์์๋ฅผ ํ! ์ฐ์ด๋ด์ ๊ทธ ์์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค.
๊ทธ ๋ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒ์ด ๋ํ์ ์ผ๋ก selector ์ด๋ค.
selector ๋ฟ๋ง ์๋๋ผ DOM, ๋ถ๋ชจ-์์-ํ์ ๊ด๊ณ, ํํฐ๋ง ๋ฑ์ ์ด์ฉํด์ ์์๋ฅผ ์ ํํด์ฌ ์์๋ค.
Selector (์ ํ์)
: ์ ํ์๋ css์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๊ฐ๋ค.
Selector | ์ ์ |
$("p") | p ํ๊ทธ์ธ ์์ |
$("#btn") | id๊ฐ "btn"์ธ ์์ |
$(".btn") | class๊ฐ "btn"์ธ ์์ |
$(this) | ํ์ฌ ์์ ์ ํ |
$("p.intro") | <p>ํ๊ทธ ์ค์์ class๊ฐ "intro"์ธ ์์ |
$("p:first") | <p>ํ๊ทธ ์ค์์ ์ฒซ๋ฒ์งธ ์์ |
$("ul li:first") | ์ฒซ๋ฒ์งธ <ul>์์ ํ์์ ์ฒซ๋ฒ์งธ <li> ์์ |
$("ul li:first-child") | ๋ชจ๋ <ul>์์ ํ์์ ์ฒซ๋ฒ์งธ <li> ์์ |
$("*") | ๋ชจ๋ ์์(element)์ ํ |
- $("#btn") ์ $(".btn") : id๋ ๋จ ํ๋, class๋ ์ฌ๋ฌ๊ฐ์ ์ ์ฉ ๊ฐ๋ฅ ํ๋ค๋ ํน์ง์ด ์๋ค. ๋ฐ๋ผ์ id๋ฅผ selectํ๋ฉด ํ ๊ฐ์ ์์๊ฐ ์ค๊ณ , class๋ฅผ select ํ๋ฉด ์ฌ๋ฌ๊ฐ๊ฐ ์ค๋๋ฐ ๋ ๋ค ๋ฐฐ์ด์ ๋ด๊ฒจ์จ๋ค.
- $("*") : ๋ณดํต ๋จ๋ ์ผ๋ก ์ฐ๋ ๊ฒฝ์ฐ๋ ์ ์๊ณ , div ์์ ํน์ ํด๋์ค ์์ ๋ชจ๋ ์์๋ฅผ ๊ฐ์ ธ์ค๋ ์์ผ๋ก ์ฌ์ฉํ๋ค.
- $("ul li") : ul > li ์ฒ๋ผ ์ฐ๊ธฐ๋ ํ๋ค. ul ํ๊ทธ์ ์์์์์ธ li ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- $(this) :์ด๋ฒคํธ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
์์ฑ ํํฐ ( ํน์ ํ๊ทธ์ ํน์ ์์ฑ)
์งํ๋(a) : ํ๊ทธ
ํ๋์(href , target) : ์์ฑ
์ฃผํฉ์(_blank) : ์์ฑ ๊ฐ
Selector | ์ ์ |
$("a[href]") | a ํ๊ทธ ์ค์์ href ์์ฑ์ด ์๋ ์์ |
$("a[target='_blank']") | a ํ๊ทธ ์ค์์ target ์์ฑ์ด _blank ์ธ ์์ |
$("a[target!='_blank']") | a ํ๊ทธ ์ค์์ target์์ฑ์ด _blank๊ฐ ์๋ ์์ |
$(":button") | button ํ๊ทธ ๋๋ ์์ฑ์ธ ์์ |
$("tr:even") | <tr>ํ๊ทธ ์ค ํ์ <tr>ํ๊ทธ |
$("tr:odd") | <tr> ํ๊ทธ ์ค ํ์ <tr>ํ๊ทธ |
- $(":button") : <button> ๋๋ <input type="button"> ์ธ ๊ฒฝ์ฐ
- $("tr:even") ๊ณผ $("tr:odd") : 0๋ถํฐ ์์ -> 0์ ์ง์๋ก ๋ณธ๋ค.
DOM
Document Object Model
?
๋ถ๋ชจ ๊ด๊ณ๋ฅผ ์ด์ฉํ select ๋ฐฉ์
ํ์ | ์ ์ |
$(selector).parent(); | ์ ํํ ์์(selector)์ ๋ฐ๋ก ์์ ์์๋ฅผ ์ ํ |
$(selector).parents(selector); | ์ ํํ ์์์ ์์ ์์๋ค ์ค selector ์์๋ค ๋ชจ๋ ์ ํ |
$(selector).parentsUntil(selector); | ์ ํํ ์์์ ์ง์ ํ ์์ ์ฌ์ด์ ๋ถ๋ชจ๋ฅผ ๋ชจ๋ ์ ํ |
$(selector).closest(selector); | ์ ํํ ์์๋ก๋ถํฐ ๋ถ๋ชจ ์์๋ค์ ํ์, ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒฌํ ์์๋ฅผ ์ ํ |
- $("span").parents('div') : span ํ๊ทธ์์๋ถํฐ html ๊น์ง ๋ชจ๋ div ์์๋ฅผ ์ ํ
- $("span").parentsUntil('.ancestors') : span ํ๊ทธ์์๋ถํฐ class๊ฐ ancestors ์ธ ์์ ์ฌ์์ ๋ชจ๋ ๋ถ๋ชจ ์์ ์ ํ, ๋น์ฌ์(span)์ ์ง์ ๋ ์์(.ancestors)๋ ์ ํ์์ ์ ์ธ๋๋ค.
- $("#item").closest("div") : id๊ฐ item ์ธ ์์์์ ์์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ๊ฑธ๋ฆฌ๋ ์ฒซ๋ฒ์งธ div ์์๋ฅผ ๊ฐ์ ธ์จ๋ค.$('#item').parents("div") : id๊ฐ item ์ธ ์์์์ ์์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ๊ฑธ๋ฆฌ๋ ๋ชจ๋ div ์์๋ฅผ ๊ฐ์ ธ์จ๋ค.
์์ ๊ด๊ณ๋ฅผ ์ด์ฉํ select ๋ฐฉ์
์ฌ์ฉ๋ฒ | ์ ์ |
$(selector).children(); | ์ ํํ ์์์ ๋ฐ๋ก ์๋์ ์์๋ฅผ ์ ํ |
$(selector).find(selector); | ์ ํํ ์์์ ํ์ ์์๋ค ์ค ๊ฒ์ |
- $(".ancestors").find('span') : class ๊ฐ ancestors ์ธ ์์์ ์์๋ค ์ค span ํ๊ทธ๋ง ์ฐพ์์จ๋ค.
- $(".ancestors").children() : class ๊ฐ ancestors ์ธ ์์์ ๋ฐ๋ก ํ์ ์์๋ค์ ๊ฐ์ ธ์จ๋ค.

class="ancestors"์ธ div ์ ๋ฐ๋ก ์๋ ์์๋ค์ ์ซ์๋ก ํ์ํด๋์ 1,2 div ์ด๋ค. div ๋ฐ์ ์์๋ค์ ์ ์ธํ๊ณ ๋ฑ ๋ ๊ฐ์ div ๋ง ํด๋นํ๋ค.
ํ์ ๊ด๊ณ๋ฅผ ์ด์ฉํ select ๋ฐฉ์
- $("h3").siblings() : ๋น์ฌ์(h3)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋์ผ์ ์์ ์์๋ค์ ์ ํํ๋ค.
$("h3").siblings().css({"background-color":"blue"});
=> ELEMENT 5 ๋ฅผ ์ ์ธํ ELEMENT 1~4 , ELEMENT 6~9๋ฅผ ๋ชจ๋ ๋ฐฐ๊ฒฝ์์ ํ๋์์ผ๋ก ํ๋ค. - $("h3").next() ์ $("h3").prev() : h3๋ณด๋ค ํ ์นธ ์๋ ์ ํ ์นธ ์
=> next : ELEMENT 6
=> prev : ELEMENT 4 - $("h3").nextAll() ๊ณผ $("h3").prevAll() : h3๋ณด๋ค ์๋ ์ ์
=> nextAll : ELEMENT 6~9
=> prevAll : ELEMENT 1~4 - $("h3").nextUntil() ๊ณผ $("h3").prevUntil() : untill์ ๋น์ฌ์์ ์ ํํ ์์๋ ์ ์ธ๋๋ค.
=> nextUntil() : ELEMENT 6~8
=> prevUntil() : ELEMENT 2~4
filtering์ ์ด์ฉํ ์ ํ
- $("div p").eq(0)) : div ์๋ p ํ๊ทธ ์ค 0๋ฒ์งธ ์์ (์ธ๋ฑ์ค ๊ฐ๋ )
- $("p").filter(".sel")) : p ์์ ์ค class ๊ฐ sel ์ธ ์์
== $("p.sel")) - $("p").not(".sel")) : p ์์ ์ค class๊ฐ sel์ด ์๋ ์์
'Front-End > jQuery' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
jQuery : focus(), blur() ์ด๋ฒคํธ (0) | 2022.06.06 |
---|---|
jQuery ๋์ค์ ์์ฑ๋ ์์์ ์ด๋ฒคํธ ๋ฑ๋ก (0) | 2022.06.06 |
jQuery ์ด๋ฒคํธ ๋ฑ๋ก, ์ญ์ (0) | 2022.06.03 |