๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JQuery

์ œ์ด์ฟผ๋ฆฌ : ํด๋ž˜์Šค ๊ด€๋ จ ๋ฉ”์„œ๋“œ

by ์ฝ”ํŒŒ์นด 2022. 9. 4.
728x90

์ œ์ด์ฟผ๋ฆฌ : ํด๋ž˜์Šค ๊ด€๋ จ ๋ฉ”์„œ๋“œ

์˜ค๋Š˜์€ JQuery์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ๋“ค ์ค‘, ํด๋ž˜์Šค์™€ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


1. addClass() ๋ฉ”์„œ๋“œ

์š”์†Œ์— class ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ถ„๋ฅ˜ ํ˜•์‹
์ถ”๊ฐ€ $("div").addClass("ํด๋ž˜์Šค๋ช…");
์ฝœ๋ฐฑ ํ•จ์ˆ˜ $("div").addClass(function(index, className) {
    // index๋Š” ๊ฐ div ์š”์†Œ์˜ index 0,1,2
    // className์€ ๊ฐ div์˜ class ์†์„ฑ
    return class ์†์„ฑ // ๊ฐ div์— class ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
});
....
<div>๋‚ด์šฉ1</div>
<div>๋‚ด์šฉ2</div>
<div>๋‚ด์šฉ3</div>

๋‹ค์Œ์€ addClass() ๋ฉ”์„œ๋“œ์˜ ์‚ฌ์šฉ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

See the Pen classmethod01 by mj0614k (@mj0614k) on CodePen.

2. removeClass() ๋ฉ”์„œ๋“œ

์š”์†Œ์—์„œ class ์†์„ฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ถ„๋ฅ˜ ํ˜•์‹
์ œ๊ฑฐ $("div").removeClass("ํด๋ž˜์Šค๋ช…");
์ฝœ๋ฐฑ ํ•จ์ˆ˜ $("div").removeClass(function(index, className) {
    // index๋Š” ๊ฐ div ์š”์†Œ์˜ index 0,1,2
    // className์€ ๊ฐ div์˜ class ์†์„ฑ m1, m2, m3
return class ์†์„ฑ // ๊ฐ div์— class ์†์„ฑ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
});
....
<div class="m1">๋‚ด์šฉ1</div>
<div class="m2">๋‚ด์šฉ2</div>
<div class="m3">๋‚ด์šฉ3</div>

๋‹ค์Œ์€ removeClass() ๋ฉ”์„œ๋“œ์˜ ์‚ฌ์šฉ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

See the Pen classmethod02 by mj0614k (@mj0614k) on CodePen.

3. toggleClass() ๋ฉ”์„œ๋“œ

์š”์†Œ์— class ์†์„ฑ์ด ์—†์œผ๋ฉด addClass()๊ฐ€ ์ ์šฉ๋˜๊ณ , ์†์„ฑ์ด ์žˆ์œผ๋ฉด removeClass()๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ถ„๋ฅ˜ ํ˜•์‹
์ถ”๊ฐ€/์ œ๊ฑฐ $("div").toggleClass("ํด๋ž˜์Šค๋ช…");

๋‹ค์Œ์€ toggleClass() ๋ฉ”์„œ๋“œ์˜ ์‚ฌ์šฉ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

See the Pen classmethod03 by mj0614k (@mj0614k) on CodePen.

4. hasClass() ๋ฉ”์„œ๋“œ

if๋ฌธ์˜ ์กฐ๊ฑด์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์š”์†Œ ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉด true, ์—†์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

if($("#box").hasClass("m")) {
    console.log("ํด๋ž˜์Šค ์žˆ์Œ");  // ํด๋ž˜์Šค ์žˆ์Œ
} else {
    console.log("ํด๋ž˜์Šค ์—†์Œ");
}
...
<div id="#box" class="m">๋‚ด์šฉ</div>
728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘