Library/JQuery

πŸ“š 제이쿼리 λ©”μ†Œλ“œ μ’…λ₯˜ 총정리

인파_ 2021. 10. 6. 20:10

제이쿼리-λ©”μ†Œλ“œ

jQuery λ©”μ†Œλ“œ 정리

 

μš”μ†Œ getter & setter

λ©”μ†Œλ“œ μ„€λͺ…
.html() ν•΄λ‹Ή μš”μ†Œμ˜ HTML μ½˜ν…μΈ λ₯Ό λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함.
.text() ν•΄λ‹Ή μš”μ†Œμ˜ ν…μŠ€νŠΈ μ½˜ν…μΈ λ₯Ό λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함.
.width() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μš”μ†Œμ˜ λ„ˆλΉ„λ₯Ό ν”½μ…€ λ‹¨μœ„μ˜ μ •μˆ˜λ‘œ λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함.
.height() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μš”μ†Œμ˜ 높이λ₯Ό ν”½μ…€ λ‹¨μœ„μ˜ μ •μˆ˜λ‘œ λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함.
.attr() ν•΄λ‹Ή μš”μ†Œμ˜ λͺ…μ‹œλœ μ†μ„±μ˜ 속성값을 λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함.
.val() <form>μš”μ†Œμ˜ 값을 λ°˜ν™˜ν•˜κ±°λ‚˜ 섀정함. .value = 같은 κ±°

 

html()

== innerHTMLκ³Ό κ°™λ‹€.

<p>μ•ˆλ…•ν•˜μ„Έμš”.</p>

<script>
$("p").html(); // <p>μ•ˆλ…•ν•˜μ„Έμš”.</p>
$("p").html("<div class='wrap'>devkumaμž…λ‹ˆλ‹€.</div>");
</script>

 

text()

== textContent와 κ°™λ‹€.

<p>μ•ˆλ…•ν•˜μ„Έμš”.</p>

<script>
$("p").text(); // μ•ˆλ…•ν•˜μ„Έμš”
$("p").text("devkumaμž…λ‹ˆλ‹€.");
</script>

 

width(), height()

// setter
$("img").width(300);
$("img").height(300);

// getter
var imgWidth = $("img").width();
var imgHeight = $("img").height();

$("p").html("κ°€λ‘œ 길이:" + imgWidth + ", 높이 :" + imgHeight);

 

attr()

== setAttribute() 와 getAttribute() κ°™λ‹€.

μ•ˆμ— 인자λ₯Ό 주냐 μ•ˆμ£Όλƒμ— 따라 set, get이 μ •ν•΄μ§„λ‹€.

// <img>μš”μ†Œμ˜ src 속성값을 μ½μ–΄μ˜€λŠ” getter λ©”μ†Œλ“œ
$("img").attr("src");

// <img>μš”μ†Œμ˜ src 속성값을 μƒˆλ‘œμš΄ κ°’μœΌλ‘œ μ„€μ •ν•˜λŠ” setter λ©”μ†Œλ“œ
$("img").attr("src", "/examples/images/img_flag.png");

 

val()

formνƒœκ·Έμ˜ valueλ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ°€μ Έμ˜¨λ‹€.

<select>
   <option>사과 </option>
   <option>λ”ΈκΈ° </option>
   <option>μˆ˜λ°• </option>
   <option>멜둠  </option>
</select>

<script>
$('select > option:selected').val();   // select 둜 μ„ νƒλœ 값이 μ°ΎκΈ°
</script>

μš”μ†Œ λ‚΄λΆ€(μžμ‹) μΆ”κ°€

λ©”μ†Œλ“œ μ„€λͺ…
.append() μ„ νƒν•œ μš”μ†Œμ˜ λ§ˆμ§€λ§‰μ— μƒˆλ‘œμš΄ μš”μ†Œλ‚˜ μ½˜ν…μΈ λ₯Ό 좔가함.
.prepend() μ„ νƒν•œ μš”μ†Œμ˜ μ²˜μŒμ— μƒˆλ‘œμš΄ μš”μ†Œλ‚˜ μ½˜ν…μΈ λ₯Ό 좔가함.
.appendTo() μ„ νƒν•œ μš”μ†Œλ₯Ό ν•΄λ‹Ή μš”μ†Œμ˜ λ§ˆμ§€λ§‰μ— μ‚½μž…ν•¨.
.prependTo() μ„ νƒν•œ μš”μ†Œλ₯Ό ν•΄λ‹Ή μš”μ†Œμ˜ μ²˜μŒμ— μ‚½μž…ν•¨.

제이쿼리-λ©”μ†Œλ“œ

 

append()

.append() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œμ˜ μ•ˆμ— 'ν•΄λ‹Ή μš”μ†Œμ˜ λ§ˆμ§€λ§‰'에 μΆ”κ°€ν•œλ‹€.

μžμ‹μ„ μΆ”κ°€ν•΄μ„œ λ„£λŠ”λ‹€ 와 같은 말이닀.

$("#list").append("<li>μƒˆλ‘œ μΆ”κ°€λœ μ•„μ΄ν…œμ΄μ—μš”!</li>");

제이쿼리-λ©”μ†Œλ“œ

​

appendTo()

.appendTo() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œλ₯Ό 'ν•΄λ‹Ή μš”μ†Œμ˜ λ§ˆμ§€λ§‰'에 μΆ”κ°€ν•œλ‹€.

λ™μž‘μ€ .append() λ©”μ†Œλ“œμ™€ λ™μΌν•˜μ§€λ§Œ, μ†ŒμŠ€(source)와 νƒ€κ²Ÿ(target)의 μœ„μΉ˜κ°€ μ„œλ‘œ λ°˜λŒ€λ‘œ λ˜μ–΄ μžˆλ‹€.

$("<span>jQueryμž…λ‹ˆλ‹€.</span>").appendTo("p");

μš”μ†Œ μ™ΈλΆ€ μΆ”κ°€

λ©”μ†Œλ“œ μ„€λͺ…
.before() μ„ νƒν•œ μš”μ†Œμ˜ λ°”λ‘œ μ•žμ— μƒˆλ‘œμš΄ μš”μ†Œλ‚˜ μ½˜ν…μΈ λ₯Ό 좔가함.
.after() μ„ νƒν•œ μš”μ†Œμ˜ λ°”λ‘œ 뒀에 μƒˆλ‘œμš΄ μš”μ†Œλ‚˜ μ½˜ν…μΈ λ₯Ό 좔가함.
.insertBefore() μ„ νƒν•œ μš”μ†Œλ₯Ό ν•΄λ‹Ή μš”μ†Œμ˜ μ•žμ— μ‚½μž…ν•¨.
.insertAfter() μ„ νƒν•œ μš”μ†Œλ₯Ό ν•΄λ‹Ή μš”μ†Œμ˜ 뒀에 μ‚½μž…ν•¨.

 

after()

.after() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œμ˜ 밖에 'λ°”λ‘œ λ’€μͺ½μ—' μƒˆλ‘œμš΄ μš”μ†Œλ‚˜ μ½˜ν…μΈ λ₯Ό μΆ”κ°€ν•œλ‹€.

β€» append() 차이점
: appendλŠ” p의 λ‚΄λΆ€μ—μ„œ μžμ‹μœΌλ‘œμ„œ μΆ”κ°€ν•˜λŠ”κ±°κ³ 
: afterλŠ” p의 μ™ΈλΆ€ μ—μ„œ λ°”λ‘œ λ‹€μŒμ— μΆ”κ°€ν•˜λŠ” κ±°λ‹€.
$("p").after("<div>" + (++i) + "번째 λ¬Έμž₯μž…λ‹ˆλ‹€.</div>");

제이쿼리-λ©”μ†Œλ“œ

​

insertAfter()

λ™μž‘μ€ .after() λ©”μ†Œλ“œμ™€ κ°™μ§€λ§Œ, μ†ŒμŠ€(source)와 νƒ€κ²Ÿ(target)의 μœ„μΉ˜κ°€ μ„œλ‘œ λ°˜λŒ€λ‘œ λ˜μ–΄ μžˆλ‹€.

$("<div>" + (++i) + "번째 λ¬Έμž₯μž…λ‹ˆλ‹€.</div>").insertAfter("p");

μš”μ†Œ 감싸기

λ©”μ†Œλ“œ μ„€λͺ…
.wrap() μ„ νƒν•œ μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό 좔가함.
.wrapAll() μ„ νƒν•œ λͺ¨λ“  μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό 좔가함.
.wrapInner() μ„ νƒν•œ μš”μ†Œμ— ν¬ν•¨λ˜λŠ” μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό 좔가함.

 

wrap()

.wrap() λ©”μ†Œλ“œλŠ” 'μ„ νƒν•œ μš”μ†Œ'λ₯Ό ν•˜λ‚˜ν•˜λ‚˜μ”© 감싼닀.

μ–΄λ ΅κ²Œ 생각할 ν•„μš”μ—†λ‹€.

λž©μ„ μ”Œμš°λ‹€. λž©μ€ 물건을 κ°μ‹ΈλŠ” μš©λ„λ‹€.

즉 μš”μ†Œλ₯Ό μ”Œμš°λ‹€ 둜 μ΄ν•΄ν•˜λ©΄ λœλ‹€.

<p>μ•ˆλ…•ν•˜μ„Έμš”.</p>
<p>devkumaμž…λ‹ˆλ‹€.</p>

<script>
$("p").wrap("<div class='wrap'></div>"); // <p>νƒœκ·Έλ₯Ό <div>둜 감싼닀. 

// ν’€μ–΄μ“°λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.
// $("p").before($("<div class='wrap'></div>")); //μƒˆλ‘œμš΄ divμš”μ†Œλ₯Ό μΆ”κ°€
// $("div.wrap")[0].append($("p")[0]); // div에 μžμ‹μœΌλ‘œ p μΆ”κ°€
// $("div.wrap")[1].append($("p")[1]); // div에 μžμ‹μœΌλ‘œ p μΆ”κ°€
// $("body > p").remove(); // 남은 p지움
</script>

제이쿼리-λ©”μ†Œλ“œ
제이쿼리-λ©”μ†Œλ“œ

​

wrapAll()

.wrapAll() λ©”μ†Œλ“œλŠ” 'μ„ νƒν•œ μš”μ†Œ'λ₯Ό ν•œκΊΌλ²ˆμ— λͺ¨μ•„μ„œ 감싼닀.

$("p").wrapAll("<div class='wrap'></div>");

제이쿼리-λ©”μ†Œλ“œ

​

wrapInner()

.wrapInner() λ©”μ†Œλ“œλŠ” 'μ„ νƒν•œ μš”μ†Œ μ•ˆ`에 μžˆλŠ” κ±Έ 감싼닀.

λ‹€λ₯Έκ±΄ μš”μ†Œ 자체λ₯Ό κ°μ‹Έμ§€λ§Œ, Inner은 μ•ˆ λ‚΄μš©λ¬Όμ„ 감싼닀.

<p>μ•ˆλ…•ν•˜μ„Έμš”. devkumaμž…λ‹ˆλ‹€.</p> 

<script>
$("p").wrapInner("<div class='wrap'></div>");
</script>

제이쿼리-λ©”μ†Œλ“œ
제이쿼리-λ©”μ†Œλ“œ


μš”μ†Œ 볡사

λ©”μ†Œλ“œ μ„€λͺ…
.clone() μ„ νƒν•œ μš”μ†Œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό 생성함.
$("#firstItem").clone().appendTo("#list");

.clone() λ©”μ†Œλ“œλŠ” 기쑴의 HTML μš”μ†Œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ HTML μš”μ†Œλ₯Ό 생성할 뿐이닀.

λ”°λΌμ„œ λ°˜λ“œμ‹œ .append() λ©”μ†Œλ“œλ‚˜ .appendTo() λ©”μ†Œλ“œμ™€ 같은 λ‹€λ₯Έ λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μš”μ†Œλ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.


μš”μ†Œ λŒ€μ²΄

λ©”μ†Œλ“œ μ„€λͺ…
.replaceAll() μ„ νƒν•œ μš”μ†Œλ₯Ό μ§€μ •λœ μš”μ†Œλ‘œ λŒ€μ²΄ν•¨.
.replaceWith() μ„ νƒν•œ λͺ¨λ“  μš”μ†Œλ₯Ό μ§€μ •λœ μš”μ†Œλ‘œ λŒ€μ²΄ν•¨.

 

replaceAll()

$(λ°”λ€Œκ²Œ 될 μš”μ†Œ).replaceWith(λ°”κΎΈκ³  싢은 μš”μ†Œ);
<div class="container">
  <div class="inner first">Hello</div>
  <div class="inner second">And</div>
  <div class="inner third">Goodbye</div>
</div>

<script>
$( "<h2>New heading</h2>" ).replaceAll( ".inner" );
// inner클래슀의 μš”μ†Œλ“€μ„ <h2>둜 λ°”κΎΌλ‹€.

 
/* κ²°κ³Ό
<div class="container">
  <h2>New heading</h2>
  <h2>New heading</h2>
  <h2>New heading</h2>
</div> */
</script>

 

 

replaceWith()

$(λ°”κΎΈκ³  싢은 μš”μ†Œ).replaceWith(λ°”λ€Œκ²Œ 될 μš”μ†Œ);

.replaceWith() λ©”μ†Œλ“œμ˜ λ™μž‘μ€ .replaceAll() λ©”μ†Œλ“œμ™€ λΉ„μŠ·ν•˜μ§€λ§Œ,

μ†ŒμŠ€(source)와 νƒ€κ²Ÿ(target)의 μœ„μΉ˜κ°€ μ„œλ‘œ λ°˜λŒ€μ΄λ‹€.

λ˜ν•œ, .replaceWith() λ©”μ†Œλ“œλŠ” μ§€μ •λœ μš”μ†Œλ‘œ λŒ€μ²΄λ˜μ–΄ 제거된 κΈ°μ‘΄ μš”μ†Œλ₯Ό λ°˜ν™˜ν•œλ‹€.

.replaceAll() λ©”μ†Œλ“œμ™€ .replaceWith() λ©”μ†Œλ“œλŠ” 제거된 μš”μ†Œμ™€ κ΄€λ ¨λœ λͺ¨λ“  데이터와 이벀트 ν•Έλ“€λŸ¬λ„ 같이 μ œκ±°ν•œλ‹€.


μš”μ†Œ μ‚­μ œ

λ©”μ†Œλ“œ μ„€λͺ…
.remove() μ„ νƒν•œ μš”μ†Œλ₯Ό DOM νŠΈλ¦¬μ—μ„œ μ‚­μ œν•¨. (μ‚­μ œλœ μš”μ†Œμ™€ μ—°κ΄€λœ 제이쿼리 λ°μ΄ν„°λ‚˜ μ΄λ²€νŠΈλ„ 같이 μ‚­μ œλ¨)
.detach() μ„ νƒν•œ μš”μ†Œλ₯Ό DOM νŠΈλ¦¬μ—μ„œ μ‚­μ œν•¨. (μ‚­μ œλœ μš”μ†Œμ™€ μ—°κ΄€λœ 제이쿼리 λ°μ΄ν„°λ‚˜ μ΄λ²€νŠΈλŠ” μœ μ§€λ¨)
.empty() μ„ νƒν•œ μš”μ†Œμ˜ μžμ‹ μš”μ†Œλ₯Ό λͺ¨λ‘ μ‚­μ œν•¨.
.unwrap() μ„ νƒν•œ μš”μ†Œμ˜ λΆ€λͺ¨ μš”μ†Œλ₯Ό μ‚­μ œν•¨.

 

remove()

.remove() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ HTML μš”μ†Œλ₯Ό DOM νŠΈλ¦¬μ—μ„œ μ‚­μ œν•œλ‹€.

μ΄λ•Œ μ‚­μ œλ˜λŠ” μš”μ†Œμ™€ μ—°κ΄€λœ jQuery λ°μ΄ν„°λ‚˜ μ΄λ²€νŠΈλ„ λͺ¨λ‘ ν•¨κ»˜ μ‚­μ œλœλ‹€.

//<p> μš”μ†Œ 쀑에 idκ°€ one, two인 μš”μ†Œλ₯Ό μ‚­μ œν•œλ‹€.
$("p").remove("#one, #two");

 

detach()

.detach() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œλ₯Ό DOM νŠΈλ¦¬μ—μ„œ μ‚­μ œν•œλ‹€.

μ΄λ•Œ μ‚­μ œλ˜λŠ” μš”μ†Œμ™€ μ—°κ΄€λœ jQuery λ°μ΄ν„°λ‚˜ μ΄λ²€νŠΈλŠ” μ‚­μ œλ˜μ§€ μ•Šκ³ , 계속 μœ μ§€λœλ‹€.

.detach() λ©”μ†Œλ“œκ°€ λ°˜ν™˜ν•˜λŠ” jQuery 객체λ₯Ό .append()λ‚˜ .prepend()와 같은 λ©”μ†Œλ“œμ— 인수둜 μ „λ‹¬ν•˜λ©΄ μ‚­μ œν•œ μš”μ†Œλ₯Ό λ‹€μ‹œ 볡ꡬ할 μˆ˜λ„ μžˆλ‹€.

data = $(".hello").detach(); // classκ°€ "hello"인 μš”μ†Œλ₯Ό λͺ¨λ‘ μ‚­μ œν•œλ‹€.

$("p").after(data);  // detach() λ©”μ†Œλ“œλ‘œ μ‚­μ œλ˜μ—ˆλ˜ λͺ¨λ“  μš”μ†Œλ₯Ό λ‹€μ‹œ μΆ”κ°€ν•œλ‹€.

μš”μ†Œ μœ„μΉ˜

λ©”μ†Œλ“œ μ„€λͺ…
.offset() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό HTML λ¬Έμ„œλ₯Ό κΈ°μ€€μœΌλ‘œ λ°˜ν™˜ν•˜κ±°λ‚˜, μ„ νƒν•œ μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό 인수둜 전달받은 κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.
.position() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μœ„μΉ˜λ₯Ό ν•΄λ‹Ή μš”μ†Œκ°€ μ›Ή νŽ˜μ΄μ§€μ— μœ„μΉ˜ν•  λ•Œ 기쀀이 λ˜μ—ˆλ˜ λΆ€λͺ¨ μš”μ†Œλ₯Ό κΈ°μ€€μœΌλ‘œ ν•˜λŠ” μƒλŒ€ μœ„μΉ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

 

즉, νŠΉμ • μš”μ†Œμ˜ topμœ„μΉ˜μ™€ leftμœ„μΉ˜λ₯Ό μ•Œμ•„λ‚΄λŠ”λ° μ‚¬μš©

// μœ„μΉ˜ κ°€μ Έμ˜€κΈ°
var p = $("p:first").offset();
$("span").text("top: " + p.top + "xp, left: " + p.left + "xp");

// μœ„μΉ˜ μ„€μ •
$("p").offset({ top: 200, left: 10 });
// position은 getterμ „μš© λ©”μ†Œλ“œμ΄λ‹€. λ”°λΌμ„œ offset()κ³ΌλŠ” 달리 setν• μˆ˜ μ—†λ‹€.
var p = $("p").position();
$("#position").text("position - top: " + p.top + "xp, left: " + p.left + "xp");

 

.offset() λ©”μ†Œλ“œμ™€ .position() λ©”μ†Œλ“œμ˜ 차이점

.offset() λ©”μ†Œλ“œ HTML λ¬Έμ„œ(HTML document)λ₯Ό κΈ°μ€€μœΌλ‘œ 함.
.position() λ©”μ†Œλ“œ μ„ νƒν•œ μš”μ†Œκ°€ μ›Ή νŽ˜μ΄μ§€μ— μœ„μΉ˜ν•  λ•Œ 기쀀이 λ˜λŠ” λΆ€λͺ¨ μš”μ†Œλ₯Ό κΈ°μ€€μœΌλ‘œ 함.

쑰상 μš”μ†Œ 탐색

λ©”μ†Œλ“œ μ„€λͺ…
.parent() μ„ νƒν•œ μš”μ†Œμ˜ λΆ€λͺ¨(parent) μš”μ†Œλ₯Ό 선택함.
.parents() μ„ νƒν•œ μš”μ†Œμ˜ 쑰상(ancestor) μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.parentsUntil() μ„ νƒν•œ μš”μ†Œμ˜ 쑰상 μš”μ†Œ μ€‘μ—μ„œ
μ§€μ •ν•œ μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œ λ°”λ‘œ μ΄μ „κΉŒμ§€μ˜ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.closest() μ„ νƒν•œ μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λ©΄μ„œ κ°€μž₯ κ°€κΉŒμš΄ μƒμœ„ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
​
이 λ©”μ†Œλ“œκ°€ μš”μ†Œμ˜ 탐색을 방식은 .parents() λ©”μ†Œλ“œμ™€ λΉ„μŠ·ν•˜μ§€λ§Œ, ν•΄λ‹Ή μš”μ†Œμ˜ μƒμœ„ μš”μ†ŒλΏλ§Œ μ•„λ‹ˆλΌ ν•΄λ‹Ή μš”μ†Œ μžμ‹ κΉŒμ§€λ„ ν¬ν•¨ν•˜μ—¬ νƒμƒ‰ν•œλ‹€λŠ” 점이 λ‹€λ₯΄λ‹€.
// <ul> μš”μ†Œμ˜ λΆ€λͺ¨ μš”μ†Œλ₯Ό μ„ νƒν•˜μ—¬, ν•΄λ‹Ή μš”μ†Œμ˜ CSS μŠ€νƒ€μΌμ„ λ³€κ²½ν•œλ‹€.
$("ul").parent().css({"border": "2px solid red"});

// <ul> μš”μ†Œμ˜ λͺ¨λ“  쑰상 μš”μ†Œλ₯Ό μ„ νƒν•˜μ—¬, 
$("ul").parents().css({"border": "2px solid red"});

// <ul>μš”μ†Œμ˜ μƒμœ„ μš”μ†Œ μ€‘μ—μ„œ <div>μš”μ†Œλ₯Ό λͺ¨λ‘ μ„ νƒν•˜μ—¬, 
$("ul").parents("div").css({"border": "2px solid red"});

// <li>μš”μ†Œμ˜ μƒμœ„ μš”μ†Œ μ€‘μ—μ„œ 첫 번째 <div>μš”μ†Œμ˜ λ°”λ‘œ μ΄μ „κΉŒμ§€μ˜ μš”μ†Œλ₯Ό λͺ¨λ‘ μ„ νƒν•˜μ—¬,
$("li").parentsUntil("div").css({"border": "2px solid red"});
<div class="container">div (κ³ κ³ μ‘°λΆ€λͺ¨)
   <div>div (κ³ μ‘°λΆ€λͺ¨)
      <ul>ul (μ‘°λΆ€λͺ¨)
         <div>div (λΆ€λͺ¨)
           <li class="me">li (μžμ‹)
          	 <span>span (μ†μž)</span>
      	   </li>
        </div>
      </ul>
   </div>
</div>

<script>
// 클래슀 "me"을 κ°€μ§„ μš”μ†Œ μžμ‹ κ³Ό, λ‚˜μ˜ μƒμœ„ μš”μ†Œ 3개의 <div> μ€‘μ—μ„œ κ°€κΉŒμš΄ divλ₯Ό 골라, 
$(".me").closest("div").css({"border": "2px solid red"});

// 클래슀 "me"을 κ°€μ§„ μš”μ†Œ μžμ‹ κ³Ό, λ‚˜μ˜ μƒμœ„ μš”μ†Œ μ€‘μ—μ„œ 첫 번째 <li>μš”μ†Œλ₯Ό μ„ νƒν•˜μ—¬, 
$(".me").closest("li").css({"border": "2px solid red"}); // κ²°κ΅­ λ‚˜ μžμ‹ μ„ 선택
</script>

제이쿼리-λ©”μ†Œλ“œ


μžμ† μš”μ†Œ 탐색

λ©”μ†Œλ“œ μ„€λͺ…
.children() μ„ νƒν•œ μš”μ†Œμ˜ μžμ‹(child) μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.find() μ„ νƒν•œ μš”μ†Œμ˜ μžμ†(descendant) μš”μ†Œ μ€‘μ—μ„œ 전달받은 μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
$("ul").children().css({"border": "2px solid red"}); // 직계 μžμ‹λ§Œ 선택
$("ul").find("*").css({"border": "2px solid red"}); // μžμ† λͺ¨λ‘λ₯Ό 선택


$("ul li").css({"border": "2px solid red"});
$("ul").find("li").css({"border": "2px solid red"});
// $("ul li") / $("ul").find("li") λ‘˜μ΄ κ°™μ§€λ§Œ find()λ©”μ†Œλ“œ μ“°λŠ”κ²Œ 더 λΉ λ₯΄λ‹€.

ν˜•μ œ μš”μ†Œ 탐색

λ©”μ†Œλ“œ μ„€λͺ…
.siblings() μ„ νƒν•œ μš”μ†Œμ˜ ν˜•μ œ(sibling) μš”μ†Œ μ€‘μ—μ„œ μ§€μ •ν•œ μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.next() μ„ νƒν•œ μš”μ†Œμ˜ λ°”λ‘œ λ‹€μŒμ— μœ„μΉ˜ν•œ ν˜•μ œ μš”μ†Œλ₯Ό 선택함.
.nextAll() μ„ νƒν•œ μš”μ†Œμ˜ λ‹€μŒμ— μœ„μΉ˜ν•œ ν˜•μ œ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.nextUntil() μ„ νƒν•œ μš”μ†Œμ˜ λ‹€μŒ ν˜•μ œ μš”μ†Œ μ€‘μ—μ„œ
μ§€μ •ν•œ μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œ λ°”λ‘œ μ΄μ „κΉŒμ§€μ˜ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.prev() μ„ νƒν•œ μš”μ†Œμ˜ λ°”λ‘œ 이전에 μœ„μΉ˜ν•œ ν˜•μ œ μš”μ†Œλ₯Ό 선택함.
.prevAll() μ„ νƒν•œ μš”μ†Œμ˜ 이전에 μœ„μΉ˜ν•œ ν˜•μ œ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.prevUntil() μ„ νƒν•œ μš”μ†Œμ˜ ν˜•μ œ μš”μ†Œ μ€‘μ—μ„œ μ§€μ •ν•œ μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œ λ°”λ‘œ λ‹€μŒκΉŒμ§€μ˜ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
<ul>ul (λΆ€λͺ¨)
  <li>li (ν˜•μ œ1)</li>
  <li>li (ν˜•μ œ2)</li>
  <li class="me">li (λ‚˜)</li>
  <li>li (ν˜•μ œ3)</li>
  <li>li (ν˜•μ œ4)</li>
</ul>

<script>
$(".me").siblings() // (ν˜•μ œ1,2,3,4) λͺ¨λ‘ 선택

$(".me").next() // λ°”λ‘œ λ‹€μŒ -> (ν˜•μ œ3)

$(".me").nextAll() // (ν˜•μ œ3) (ν˜•μ œ4)

$(".me").nextUntil("li:last") // λ§ˆμ§€λ§‰ μš”μ†Œ ν˜•μ œ4 μ΄μ „κΉŒμ§€μ˜ ν˜•μ œλ₯Ό λ°˜ν™˜ -> (ν˜•μ œ3)

$(".me").prev() // λ°”λ‘œ 이전 -> (ν˜•μ œ2)

$(".me").prevAll() // (ν˜•μ œ1) (ν˜•μ œ2)

$(".me").prevUntil("li:first") // 첫번쨰 μš”μ†Œ ν˜•μ œ1 μ΄μ „κΉŒμ§€μ˜ μš”μ†Œλ₯Ό λ°˜ν™˜ -> (ν˜•μ œ2)
</script>

기타 탐색

λ©”μ†Œλ“œ μ„€λͺ…
.add() μ„ νƒν•œ μš”μ†Œμ˜ 집합에 전달받은 μš”μ†Œλ₯Ό 좔가함.
.addBack() μ„ νƒν•œ μš”μ†Œμ˜ 집합에 λ°”λ‘œ 전에 μ„ νƒν–ˆλ˜ μš”μ†Œλ₯Ό 좔가함.
.end() λ§ˆμ§€λ§‰μœΌλ‘œ μ‹€ν–‰ν•œ λ©”μ†Œλ“œμ˜ μ‹€ν–‰ μ „ μƒνƒœλ‘œ μ„ νƒν•œ μš”μ†Œμ˜ 집합을 볡원함.
.offsetParent() μ„ νƒν•œ μš”μ†Œλ₯Ό μœ„μΉ˜μ‹œν‚¬ λ•Œ 기쀀이 λ˜μ—ˆλ˜ 쑰상 μš”μ†Œλ₯Ό 선택함.
.contents() μ„ νƒν•œ μš”μ†Œμ˜ μžμ‹(child) μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함. (ν…μŠ€νŠΈ λ…Έλ“œμ™€ 주석 λ…Έλ“œκΉŒμ§€ λͺ¨λ‘ 포함함)

 

add()

μ„ νƒν•œ μš”μ†Œμ— λ‹€λ₯Έ μš”μ†Œλ₯Ό μΆ”κ°€λ‘œ μ„ νƒν•œλ‹€.

<h1>.add() λ©”μ†Œλ“œ</h1>
<p>μ•ˆλ…•ν•˜μ„Έμš”.</p>
<span>λ°λΈŒμΏ λ§ˆμž…λ‹ˆλ‹€.</span>
<div>λ°˜κ°‘μŠ΅λ‹ˆλ‹€.</div>

<script>
   // <p> μš”μ†Œλ₯Ό νƒμƒ‰ν•˜μ—¬ μ„ νƒν•˜κ³ , μΆ”κ°€λ‘œ <div>λ₯Ό μ„ νƒν•˜μ—¬ css μŠ€νƒ€μΌμ„ μ„€μ •ν•œλ‹€.
   // $("p, div").css({"border": "2px solid green"}); κ³Ό κ°™λ‹€κ³  보면 λœλ‹€.
   $("p").add("div").css({"border": "2px solid green"});
</script>

제이쿼리-λ©”μ†Œλ“œ

.add() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œμ— λ‹€λ₯Έ μš”μ†Œλ₯Ό μΆ”κ°€λ‘œ μ„ νƒν•˜λŠ” 것이지, μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜μ—¬ λ„£λŠ” λ©”μ†Œλ“œκ°€ μ•„λ‹ˆλ‹€. μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•  λ•ŒλŠ” .append(), preppend() λ“±μ„ μ‚¬μš©ν•œλ‹€.

 

addBack()

λ§ˆμ§€λ§‰μœΌλ‘œ μ„ νƒν•œ μš”μ†Œλ₯Ό μ΄μ „μ˜ μš”μ†Œλ₯Ό μΆ”κ°€λ‘œ μ„ νƒν•œλ‹€.

<div id="after">
  <p>.addBack() 적용 ν›„</p>
  <p>μ•ˆλ…•ν•˜μ„Έμš”. λ°λΈŒμΏ λ§ˆμž…λ‹ˆλ‹€.</p>
</div>

<script>
// λ¨Όμ € <div id="after"> μš”μ†Œμ—μ„œ find()λ₯Ό μ΄μš©ν•˜μ—¬ <p>λ₯Ό μ„ νƒν•˜κ³ , μΆ”κ°€λ‘œ .addBack()둜 <div id="after">λ₯Ό μ„ νƒν•˜μ—¬ CSS μŠ€νƒ€μΌλ₯Ό μ„€μ •ν•œλ‹€.
("div#after").find("p").addBack().css({"backgroundColor": "aqua"});
</script>

 

end()

λ§ˆμ§€λ§‰μœΌλ‘œ μ‹€ν–‰ν•œ λ©”μ†Œλ“œμ˜ μ‹€ν–‰ μ „ μƒνƒœλ‘œ μ„ νƒν•œ μš”μ†Œμ˜ 집합을 볡원해 μ€€λ‹€.

<p id="after">.end() μ μš©ν›„ <span>λ°λΈŒμΏ λ§ˆμž…λ‹ˆλ‹€.</span></p>

<script>
// λ¨Όμ € <p id="after"> μš”μ†Œμ—μ„œ find()λ₯Ό μ΄μš©ν•˜μ—¬ <span>λ₯Ό μ„ νƒν–ˆλ‹€κ°€ .end()둜 .find()λ₯Ό μ·¨μ†Œν•˜κ³  <p id="after">λ₯Ό μ„ νƒν•˜μ—¬ css μŠ€νƒ€μΌλ₯Ό μ„€μ •ν•œλ‹€.
$("p#after").find("span").end().css({"border": "2px solid green"});
</script>

클래슀 μ„€μ • λ©”μ†Œλ“œ

λ©”μ†Œλ“œ μ„€λͺ…
.addClass() μ„ νƒν•œ μš”μ†Œμ— 인수둜 전달받은 클래슀λ₯Ό 좔가함.
.removeClass() μ„ νƒν•œ μš”μ†Œμ—μ„œ 인수둜 전달받은 클래슀λ₯Ό μ œκ±°ν•¨.
.ToggleClass() μ„ νƒν•œ μš”μ†Œμ— ν΄λž˜μŠ€κ°€ μ—†μœΌλ©΄ 인수둜 전달받은 클래슀λ₯Ό μΆ”κ°€ν•˜κ³ , 전달받은 ν΄λž˜μŠ€κ°€ μΆ”κ°€λ˜μ–΄ 있으면 μ œκ±°ν•¨.
.hasClass() 인수둜 전달받은 값이 μ„ νƒν•œ μš”μ†Œμ˜ 클래슀 이름과 μΌμΉ˜ν•˜λŠ”μ§€λ₯Ό 확인함.
$(selector).addClass(classname)

$(selector).removeClass(classname)

$(selector).toggleClass(classname)

$(selector).hasClass(classname)

필터링 λ©”μ†Œλ“œ

λ©”μ†Œλ“œ μ„€λͺ…
.first() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μš”μ†Œλ₯Ό 선택함.
.last() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ λ§ˆμ§€λ§‰ μš”μ†Œλ₯Ό 선택함.
.filter() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 μ„ νƒμžμ— ν•΄λ‹Ήν•˜κ±°λ‚˜, ν•¨μˆ˜ 호좜의 κ²°κ³Όκ°€ μ°Έ(true)인 μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.not() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 μ„ νƒμžμ— ν•΄λ‹Ήν•˜κ±°λ‚˜, ν•¨μˆ˜ 호좜의 κ²°κ³Όκ°€ μ°Έ(true)인 μš”μ†Œλ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.has() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œλ₯Ό μžμ† μš”μ†Œλ‘œ κ°€μ§€κ³  μžˆλŠ” μš”μ†Œλ₯Ό λͺ¨λ‘ 선택함.
.is() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 μ„ νƒμžμ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œκ°€ ν•˜λ‚˜λΌλ„ μ‘΄μž¬ν•˜λ©΄ μ°Έ(true)을 λ°˜ν™˜ν•¨.
.eq() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 μΈλ±μŠ€μ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œλ₯Ό 선택함.
.slice() μ„ νƒν•œ μš”μ†Œ μ€‘μ—μ„œ 전달받은 인덱슀 λ²”μœ„μ— ν•΄λ‹Ήν•˜λŠ” μš”μ†Œλ§Œμ„ 선택함.
<ul>
  <li>μ—μŠ€ν”„λ ˆμ†Œ</li>
  <li><b>아메리카노</b></li>
  <li><b>μΉ΄νŽ˜λΌλ–Ό</b></li>
  <li>μ½œλ“œλΈŒλ£¨</li>
</ul>

<script>
$("li").first() // μ—μŠ€ν”„λ ˆμ†Œ
$("li").last() // μ½œλ“œλΈŒλ£¨

$("li").eq(-1) // μ½œλ“œλΈŒλ£¨

$("li").filter(":odd") // ν™€μˆ˜ -> 아메리카노, μ½œλ“œλΈŒλ£¨
$("li").not(":odd") // ν™€μˆ˜ μ•„λ‹Œ 수 -> μ—μŠ€ν”„λ ˆμ†Œ, μΉ΄νŽ˜λΌλ–Ό

$("li").has("b") // 아케리카노, μΉ΄νŽ˜λΌλ–Ό

if ($("b").parents().is("ul")) { // true
}

$("li").slice(2) // 인덱슀 2이상 -> μΉ΄νŽ˜λΌλ–Ό, μ½œλ“œλΈŒλ£¨
$("li").slice(1, 3) // μΈλ±μŠ€κ°€ 1κ³Ό κ°™κ±°λ‚˜ 3μ΄ν•˜ -> 아메리카노, μΉ΄νŽ˜λΌλ–Ό
</script>

 

πŸ”₯ filter λ©”μ†Œλ“œλŠ” κ³ μ°¨ν•¨μˆ˜λ‘œ 필터링 ν• μˆ˜λ„ μžˆλ‹€.

$('ul li').filter(function() {
   return $(this).css('color') == 'rgb(255, 0, 0)';
})

제이쿼리 κ³ μ°¨ν•¨μˆ˜

λ©”μ†Œλ“œ μ„€λͺ…
.map() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 각 μš”μ†Œλ§ˆλ‹€ 콜백 ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜κ³ ,
κ·Έ λ°˜ν™˜κ°’μœΌλ‘œ κ΅¬μ„±λœ 제이쿼리 객체λ₯Ό λ°˜ν™˜ν•¨.
.each() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ μš”μ†Œλ§ˆλ‹€ 전달받은 콜백 ν•¨μˆ˜λ₯Ό 싀행함.
.get() 인수λ₯Ό μ „λ‹¬ν•˜λ©΄ ν•΄λ‹Ή μΈλ±μŠ€μš”μ†Œ κ°’, μΈμˆ˜κ°€μ—†μœΌλ©΄ 전체λ₯Ό,
jQuery객체가 μ•„λ‹Œ HTML객체둜 λ°˜ν™€ν•¨.
​
λ°˜ν™˜λœ HTMLκ°μ²΄λŠ” 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λ₯Ό μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.
​
.get() : μ„ νƒλœ μš”μ†Œλ“€μ„(제이쿼리 리슀트) HTML λ°°μ—΄ λ³€ν™˜
​
.get(1) : 인덱슀 1인 HTML 객체 λ°˜ν™˜
.eq(1) : 인덱슀 1인 제이쿼리 객체 λ°˜ν™˜
​
.get(1).innerHTML("ν—¬λ‘œ μ›”λ“œ");
.eq(1).html("ν—¬λ‘œ μ›”λ“œ");
​
Q. get()으둜 λ³€ν™˜λœ HTML배열을 λ‹€μ‹œ 제이쿼리 λ°°μ—΄λ‘œ λ˜λŒλ¦΄λ–„λŠ”?
A. $( ) μ•ˆμ—λ‹€ λ„£μœΌλ©΄ λ°”λ‘œ 제이쿼리 객체둜 λ³€ν™˜λœλ‹€.

 

* μ œμ΄μΏΌλ¦¬ 객체 <-> HTML 객체

var htmlList = $("[type=checkbox]").get() // HTMLλ°°μ—΄λ‘œ λ°”κΏˆ.

var jQueryList = $(htmlList) // λ‹€μ‹œ HTML 배열을 jQuery κ°μ²΄λ°°μ—΄λ‘œ λ°”κΏˆ

 

πŸ”₯ .map().get().join() - μ„ νƒλœ 값을 λ¬Έμžμ—΄λ‘œ λ¬ΆλŠ” 방법.

1) map을 톡해 리슀트 μš”μ†Œλ₯Ό μˆœνšŒν•΄μ„œ ν•¨μˆ˜μ‹€ν–‰ν•œ 리턴값을 μ–»μ–΄ 제이쿼리 λ°°μ—΄λ‘œ λ°˜ν™˜

2) 제이쿼리 배열을, μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λ₯Ό μ“Έμˆ˜μžˆκ²Œ HTMLλ°°μ—΄λ‘œ λ³€ν™˜.

3) μžλ°”μŠ€ν¬λ¦½νŠΈ Arrayλ©”μ†Œλ“œμΈ join()을 톡해 λ¬Έμžμ—΄λ‘œ λ³€ν™˜.

<body>
  <div>
    <p>
      <span>
        <b>My parents are: </b>
      </span>
    </p>
  </div>

  <script>
     var parentEls = $("b").parents()
            .map(function () { 
               return this.tagName; // 제이쿼리 객체λ₯Ό λ°˜ν™˜
             })
            .get() // 제이쿼리 객체λ₯Ό 일반 λ°°μ—΄λ‘œ λ³€ν™˜
            .join(", "); // 배열을 λ¬Έμžμ—΄λ‘œ λ³€ν™˜

     $("b").append("<strong>" + parentEls + "</strong>");
  </script>
</body>

제이쿼리-λ©”μ†Œλ“œ

* 리슀트λ₯Ό μ—­μˆœμœΌλ‘œ 순회

var reverseList = $("[type=checkbox]").get().reverse(); // HTMLλ°°μ—΄λ‘œ λ°”κΏˆ.

$(reverseList).each(function( index ){ // HTML객체λ₯Ό λ‹€μ‹œ $()에 λ„£μœΌλ©΄ 제이쿼리 객체둜 λ³€ν™˜
    var obj = $(this);
	setTimeout(function(){
		$(obj).prop("checked", true);
	}, 100 * index );
});

CSS μŠ€νƒ€μΌ μ„€μ •

λ©”μ†Œλ“œ μ„€λͺ…
.css() css() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μŠ€νƒ€μΌ 속성값을 λ°˜ν™˜ν•˜κ±°λ‚˜, μ„ νƒν•œ μš”μ†Œμ˜ μŠ€νƒ€μΌ 속성을 인수둜 전달받은 κ°’μœΌλ‘œ 섀정함.
.attr() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μ§€μ •λœ 속성(attribute)값을 λ°˜ν™˜ν•˜κ±°λ‚˜, μ„ νƒν•œ μš”μ†Œμ˜ μ§€μ •λœ 속성을 전달받은 κ°’μœΌλ‘œ 섀정함.
.prop() μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μ§€μ •λœ ν”„λ‘œνΌν‹°(property)값을 λ°˜ν™˜ν•˜κ±°λ‚˜, μ„ νƒν•œ μš”μ†Œμ˜ μ§€μ •λœ ν”„λ‘œνΌν‹°λ₯Ό 전달받은 κ°’μœΌλ‘œ 섀정함.
.removeAttr() μ„ νƒν•œ μš”μ†Œμ—μ„œ μ§€μ •λœ 속성(attribute)을 μ œκ±°ν•¨.
.removeProp() μ„ νƒν•œ μš”μ†Œμ—μ„œ μ§€μ •λœ ν”„λ‘œνΌν‹°(property)λ₯Ό μ œκ±°ν•¨.

 

css()

JavaScriptμ—μ„œλŠ” ν•˜μ΄ν”ˆ(-)으둜 μ—°κ²°λœ CSS 속성 λͺ…을 μ‚¬μš©ν•  λ•Œ, ν•˜μ΄ν”ˆ(-)을 μ œκ±°ν•˜κ³  이름을 camelCase λ°©μ‹μœΌλ‘œ λ°”κΏ”μ„œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

.style.backgroundColor = "grey";

ν•˜μ§€λ§Œ, jQuery의 .css() λ©”μ†Œλ“œμ—μ„œλŠ” ν•˜μ΄ν”ˆ(-)으둜 μ—°κ²°λœ CSS 속성 λͺ…κ³Ό camelCase λ°©μ‹μ˜ 속성 λͺ…을 λ‘˜λ‹€ μ‚¬μš©ν•  수 μžˆλ‹€.

/* style 속성 ν•˜λ‚˜μ”© λ°”κΏ€λ•ŒλŠ” */
$("ul").css("background-color","grey");
$("ul").css("opacity,"0.5");


/* style 속성 μ—¬λŸ¬κ°œλ₯Ό λ°”κΏ€λ•ŒλŠ” */
$("ul").css({
   "background-color":"grey", // == "backgroundColor":"grey"
   "opacity":"0.5"
});

 

attr()

.attr() λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μ§€μ •λœ 속성(attribute)값을 λ°˜ν™˜ν•˜κ±°λ‚˜,

μ„ νƒν•œ μš”μ†Œμ˜ μ§€μ •λœ 속성을 전달받은 κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.

$("#word").attr("title") // idκ°€ "word"인 μš”μ†Œμ— title μ†μ„±μ˜ 값을 κ°€μ Έμ˜΄.

$("#word").attr("title", "즐거운 제이쿼리 μˆ˜μ—…") // idκ°€ "word"인 μš”μ†Œμ— title 속성을 섀정함.
          .css("color", "red"); 

$("#word").removeAttr("title") // ν•΄λ‹Ή μš”μ†Œμ—μ„œ title 속성을 μ œκ±°ν•¨.
          .css("color", "black");

 

prop()

이 λ©”μ†Œλ“œλŠ” μ„ νƒν•œ μš”μ†Œ μ§‘ν•©μ˜ 첫 번째 μš”μ†Œμ˜ μ§€μ •λœ ν”„λ‘œνΌν‹°(property)값을 λ°˜ν™˜ν•˜κ±°λ‚˜,

μ„ νƒν•œ μš”μ†Œμ˜ μ§€μ •λœ ν”„λ‘œνΌν‹°λ₯Ό 전달받은 κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.

$("input[value='jquery']").prop({ // <input>μš”μ†Œ μ€‘μ—μ„œ value 값이 "jquery"인 μš”μ†Œλ₯Ό μ„ νƒν•œ ν›„
        checked: true                 // ν•΄λ‹Ή μš”μ†Œμ— checked ν”„λ‘œνΌν‹°λ₯Ό true κ°’μœΌλ‘œ 섀정함.
});

$("#removeBtn").on("click", function() {
        $("input[value='jquery']").removeProp("checked"); // ν•΄λ‹Ή μš”μ†Œμ—μ„œ checked ν”„λ‘œνΌν‹°λ₯Ό μ‚­μ œν•¨.
});

 

[μ–΄νŠΈλ¦¬λ·°νŠΈ(attr) 와 ν”„λ‘œνΌν‹°(prop) 차이]

μ–΄νŠΈλ¦¬λ·°νŠΈ 와 ν”„λ‘œνΌν‹°λŠ” μ„œλ‘œ μ—°κ²°λ˜μ–΄μžˆλ‹€. λ‘˜μ€‘ ν•˜λ‚˜λ₯Ό λ°”κΎΈλ©΄ DOM이 λ°”λ€Œμ–΄μ§„λ‹€.

  • attribute λŠ” html λ¬Έμ„œ μ•ˆμ—μ„œμ˜ 정적인(λ°”λ€Œμ§€ μ•ŠλŠ”) 속성 κ·Έ 자체λ₯Ό μ˜λ―Έν•˜κ³ ,
  • property λŠ” html DOM μ•ˆμ—μ„œ 동적인(λ°”λ€ŒλŠ”) 속성(λ˜λŠ” κ·Έ κ°’)을 μ˜λ―Έν•œλ‹€.
<input id="check" type="checkbox" name="lecture" checked="checked">

<script>
// js
var i = document.getElemenyById("check");
i.getAttribute("id"); // 속성 μœΌλ‘œμ„œμ˜ id == "check"
i.id; // ν”„λ‘œνΌν‹°λ‘œμ„œμ˜ id == "check"

// jquery
$("input").attr("id"); // 속성 μœΌλ‘œμ„œμ˜ id == "check"
$("input").prop("id"); // ν”„λ‘œνΌν‹°λ‘œμ„œμ˜ id == "check"
</script>

# 참고 자료

https://araikuma.tistory.com/613?category=820803

http://tcpschool.com/jquery/jq_event_concept

https://zzznara2.tistory.com/455