-
Notifications
You must be signed in to change notification settings - Fork 0
jquery_in_depth_3
ID μ νμ >= ν΄λμ€ μ νμ = νκ·Έ μ΄λ¦ μ νμ
ID μ νμ, ν΄λμ€ μ νμ, νκ·Έ μ΄λ¦ μ νμλ κ°μ₯ μλκ° λΉ λ₯΄λ€. μ΄ 3κ°μ μ νμλ λ€λ₯Έ μ νμμ κ²°ν©ν΄ μ¬μ©νμ§ μκΈ°λ₯Ό μΆμ²νλ€.
νΉμ μμ λ΄μμ λ°λ³΅ν΄μ μ νν κ²½μ° νμ μ νμλ₯Ό λ°λ³΅ν΄μ μ¬μ©νμ§ λ§κ³ , μ ν λ²μλ₯Ό 미리 μ ννμ¬ μΊμ±νκ³ find() λ©μλλ₯Ό νμ©νλ νΈμ΄ λ°λμ§νλ€.
jQueryμμ μ¬μ©νλ λͺ¨λ μ νμκ° CSS νμ€μ€νμ λ§μ‘±νμ§ μλλ€. νμ€ CSS μ€νμλ μμ§λ§ jQueryμμ μ¬μ©νλ μ νμλ jQuery νμ₯ μ νμ(jQuery Extension selector)λΌκ³ λΆλ₯Έλ€.
jQuery νμ₯ μ νμλ κ°λ₯νλ©΄ μ¬μ©νμ§ μλ κ²μ΄ λ°λμ§νλ©° μ¬μ©ν΄μΌλ§ νλ κ²½μ°λΌλ©΄ λ€λ₯Έ μ νμμ κ²°ν©νμ¬ μ¬μ©νλ κ²μ΄ λ°λμ§νλ€.
λν jQuery νμ₯ μ νμλ₯Ό μ¬μ©ν λ find()μ κ°μ ν‘λ¨ νμ λ©μλλ₯Ό μ κ·Ή νμ©νλ κ²λ μ’μ λ°©λ²μ΄λ€. μ°μ μ€ν μλκ° λΉ λ₯Έ μ νμλ₯Ό μ¬μ©νμ¬ μ΅μ’
μ μΌλ‘ μ νν΄μΌ ν μμλ₯Ό μ°Ύμ λ²μλ₯Ό μ’ν νμ filter()λ find()μ κ°μ ν‘λ¨ νμ λ©μλλ₯Ό μ΄μ©νλ κ²μ΄ λ°λμ§νλ€.
μ΄λ―Έ μ νλ μμκ° μλ€λ©΄ $() ν¨μλ₯Ό νΈμΆν νμ μμ΄ μμμ μ§μ μ κ·Όνλ κ²μ΄ μ±λ₯μ λμ΄λ λ°©λ²μ΄λ€.
μ±λ₯μ΄ μ΅μ°μ κ³ λ € μ¬νμ΄λΌλ©΄ λ€μ΄ν°λΈ APIλ₯Ό μ¬μ©νμ. jQueryλ₯Ό μ¬μ©νλ κ²λ³΄λ€ λΉ λ₯΄λ€. λ€λ§ μ±λ₯μ΄ μ€μν κ³ λ € μ¬νμ΄ μλλΌλ©΄ jQueryλ₯Ό μ¬μ©νλ κ²μ΄ κ°λ° μμ°μ± ν₯μ, ν¬λ‘μ€ λΈλΌμ°μ μ§μλ±μ μ₯μ μ μ»μ μ μλ€.
selector μ΅μ νλ μμ λ³΄λ€ μ€μνμ§ μλ€. λ§μ λΈλΌμ°μ κ° document.querySelectorAll()λ₯Ό ꡬννμ¬ μ ν μ΄λμ λν λΆλ΄μ΄ jQueryμμ λΈλΌμ°μ λ‘ μ΄λνμλ€. κ·Έλ¬λ, selector μ±λ₯μ λ³λͺ©νμμ΄ λ°μν λ μΌλν΄ λμ΄μΌ ν λͺ κ°μ§ νμ΄ μλ€.
jQuery Extensions
κ°λ₯νλ©΄ jQuery extenstionμ ν¬ν¨νλ selectorλ₯Ό μ¬μ©νμ§ λ§λΌ. μ΄λ¬ν νμ₯μ native `querySelectorAll() DOM λ©μλμμ μ 곡νλ μ±λ₯ ν₯μμ μ΄μ©ν μ μκΈ° λλ¬Έμ, jQueryμμ μ 곡νλ Sizzle selector μμ§μ μ¬μ©ν΄μΌ νλ€.
// Slower (the zero-based :even selector is a jQuery extension)
$( "#my-table tr:even" );
// Better, though not exactly equivalent
$( "#my-table tr:nth-child(odd)" );μμ μμ μ²λΌ :evenμ ν¬ν¨ν CSS μ€νμμ μ 곡νμ§ μλ λ§μ jQuery extensionsμ΄ μλ€. μΌλΆ μν©μμλ μ΄λ¬ν νμ₯μ νΈλ¦¬μ±μ΄ μ±λ₯ λΉμ©λ³΄λ€ μ€μν μ μλ€.
Avoid Excessive Specificity
$( ".data table.attendees td.gonzalez" );
// Better: Drop the middle if possible.
$( ".data td.gonzalez" );Selector μμ§μ μμλ₯Ό μ°Ύμ λ νμν λ μ΄μ΄κ° μ κΈ° λλ¬Έμ λ³΄λ€ μ’μ DOMμ μ±λ₯ ν₯μμν€λλ° λμμ μ€λ€.
link ID-Based Selectors
μ νκΈ°λ₯Ό IDλ‘ μμνλ κ²μ΄ μμ ν λ°©λ²μ΄λ€.
// Fast:
$( "#container div.robotarm" );
// Super-fast:
$( "#container" ).find( "div.robotarm" );첫λ²μ§Έ μ κ·Ό λ°©μμ jQueryλ document.querySelectorAll()μ μ¬μ©νμ¬ DOMμ 쿼리νλ€. λλ²μ§Έ μ κ·Ό λ°©μμ document.getElementById()λ₯Ό μ¬μ©νλ€. μλ ν₯μμ νμμΌλ‘ μ¬μ©λ find() λλ¬Έμ μ€μ΄λ€μ§λ§ μ±λ₯μ λ λΉ λ₯΄λ€.