-
1. ์์น ํ์ ์ ํ์ โผ
-
1-1. first / last ์ ํ์
-
1-2. even / odd ์ ํ์
-
1-3. eq(index) / lt(index) / gt(index) ํ์ ์ ํ์
-
1-4. first-of-type / last-of-type ์ ํ์
-
1-5. nth-child(์ซ์n) / nth-last-of-type(์ซ์) ์ ํ์
-
1-6. only-child / slice(index) ์ ํ์
-
2. ์ ์ด์ฟผ๋ฆฌ ๋ฐฐ์ด ๊ด๋ จ ๋ฉ์๋ โผ
-
2-1. each() / $.each()
-
2-2. $.map() / $.grep() ๋ฉ์๋
-
2-3. $.inArray() / $.isArray() / $.merge() ๋ฉ์๋
-
2-4. index() ๋ฉ์๋
-
3. ์์ฑ ํ์ ์ ํ์ โผ
-
4. ๊ทธ ์ธ์ ์ ํ์ - ์ปจํ ์ธ ํ์ ์ ํ์ โผ
-
5. ์ ํ์์ ํจ๊ป ์์๋๋ฉด ์ ์ฉํ ๋ฉ์๋ โผ
-
6. ์ฐธ๊ณ ์๋ฃ

ํ์์ ํ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ์ ํ์๋ก ์ ํํ ์์ ์ค ์ํ๋ ์์๋ฅผ ํ ๋ฒ ๋ ํ์ํด์ ์ข ๋ ์ ํํ๊ฒ ์ ํํ ์ ์๋ค. ๋ํ์ ์ธ ์๋ก ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ ์ ํํ๋ `์์นํ์ ์ ํ์`์ ๋ฐฐ์ด์ ๋ด๊ฒจ์ง ์์ ์ค ์ง์ ๋ ์์ฑ๊ณผ ๊ฐ์ผ๋ก ์ ํํ๋ `์์ฑ ํ์ ์ ํ์`๊ฐ ์๋ค.
1. ์์น ํ์ ์ ํ์ โผ
๊ธฐ๋ณธ ์ ํ์๋ก ์ ํํ ์์๋ ๋ฐฐ์ด์ ๋ด๊ธฐ๊ฒ ๋๋ค.
๊ทธ๋์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์์๋ฅผ ์ข ๋ ์ ํํ๊ฒ ์ ํํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ข ๋ฅ | ์ฉ๋ฒ | ์ค๋ช |
$("์์ ์ ํ:first") $("์์ ์ ํ").first() |
$("li:first") $("li").first() |
์ ์ฒด <li> ์์ ์ค ์ฒซ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:last") $("์์ ์ ํ").last() |
$("li:last") $("li").last() |
์ ์ฒด <li> ์์ ์ค ๋ง์ง๋ง ์์๋ง ์ ํ |
$("์์ ์ ํ:odd") | $("li:odd") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ง์ ๋ฒ์งธ(ํ์ ์ธ๋ฑ์ค) ์์๋ง ์ ํ |
$("์์ ์ ํ:even") | $("li:even") | <li> ์์ ๋ฌด๋ฆฌ ์ค ํ์ ๋ฒ์งธ(์ง์ ์ธ๋ฑ์ค) ์์๋ง ์ ํ |
$("์์ ์ ํ:first-of-type") | $("li:first-of-type") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:last-of-type") | $("li:last-of-type") | <li> ์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-child(์ซ์)") | $("li:nth-child(3)") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ธ ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-child(์ซ์n)") | $("li:nth-child(3n)") | <li> ์์ ๋ฌด๋ฆฌ ์ค 3์ ๋ฐฐ์ ๋ฒ์งธ์ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-last-of-type(์ซ์)") | $("li:nth-last-ot-type(2)") | <li> ์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง ์์น๋ก๋ถํฐ ๋ ๋ฒ์งธ์ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:only-child) | $("li:only-child") | ๋ถ๋ชจ ์์ ๋ด์ <li> ์์๊ฐ 1๊ฐ ๋ฟ์ธ <li> ์์๋ง ์ ํ |
$("์์ ์ ํ:eq(index)") $("์์ ์ ํ").eq(index) |
$("li:eq(2)") $("li").eq(2) |
<li> ์์ ์ค ์ธ๋ฑ์ค 2๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ:gt(index)") | $("li:gt(1)") | <li> ์์ ์ค ์ธ๋ฑ์ค 1๋ณด๋ค ํฐ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ:lt(index)") | $("li:lt(1)") | <li> ์์ ์ค ์ธ๋ฑ์ค 1๋ณด๋ค ์์ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ").slice(index) | $("li").slice(2) | <li> ์์ ์ค ์ธ๋ฑ์ค 2๋ถํฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
1-1. first / last ์ ํ์

first ์ ํ์๋ ์ ํ๋ ์์ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํํ๋ค.
์ด์ ๋ฐ๋๋ก last ์ ํ์๋ ์ ํ๋ ์์ ์ค ๋ง์ง๋ง ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:first) ๋๋ $("์์ ์ ํ").first()
$("์์ ์ ํ:last) ๋๋ $("์์ ์ ํ").last()
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#menu li:first")
.css({"background-color":"#ff0"});
$("#menu li:last")
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<h1>first/last ์ ํ์</h1>
<ul id="menu">
<li>๋ด์ฉ1</li>
<li>๋ด์ฉ2</li>
<li>๋ด์ฉ3</li>
<li>๋ด์ฉ4</li>
</ul>
</body>
</html>

1-2. even / odd ์ ํ์

even ์ ํ์๋ ์ ํํ ์์ ์ค ํ์ ๋ฒ์ฌ(์ง์ ์ธ๋ฑ์ค) ์์๋ง ์ ํํ๊ณ , ์ด์ ๋ฐ๋๋ก odd ์ ํ์๋ ์ง์ ๋ฒ์งธ(ํ์ ์ธ๋ฑ์ค) ์์๋ง ์ ํํ๋ค. ํท๊ฐ๋ฆด ์ ์๋๋ฐ ํ์ง์ด ์์ ๊ธฐ์ค์ด ์๋๋ผ ์ธ๋ฑ์ค ๊ธฐ์ค์ด๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#menu li:even")
.css({"background-color":"#ff0"});
$("#menu li:odd")
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<h1>even/odd ์ ํ์</h1>
<ul id="menu">
<li>๋ด์ฉ1</li>
<li>๋ด์ฉ2</li>
<li>๋ด์ฉ3</li>
<li>๋ด์ฉ4</li>
</ul>
</body>
</html>

1-3. eq(index) / lt(index) / gt(index) ํ์ ์ ํ์

- eq(index) ํ์ ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
- lt(index) ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๋ณด๋ค ์์(lt, Less Than) ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
- gt(index) ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๋ณด๋ค ํฐ(gt, Greater Than) ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:eq(index)") ๋๋ $("์์ ์ ํ").eq(index)
$("์์ ์ ํ:lt(index)")
$("์์ ์ ํ:gt(index)")
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#menu li").eq(2)
.css({"background-color":"#ff0"});
$("#menu li:lt(2)")
.css({"background-color":"#0ff"});
$("#menu li:gt(2)")
.css({"background-color":"#f0f"});
});
</script>
</head>
<body>
<h1>eq() / lt() / gt() ์ ํ์</h1>
<ul id="menu">
<li>๋ด์ฉ1</li>
<li>๋ด์ฉ2</li>
<li>๋ด์ฉ3</li>
<li>๋ด์ฉ4</li>
<li>๋ด์ฉ5</li>
</ul>
</body>
</html>

1-4. first-of-type / last-of-type ์ ํ์

first-of-type ์ ํ์๋ ์ ํํ ์์์ ๋ฌด๋ฆฌ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํํ๋ค.
์ด์ ๋ฐ๋๋ก last-of-type ์ ํ์๋ ์ ํํ ์์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง์ ์์นํ ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:first-of-type")
$("์์ ์ ํ:last-of-type")
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("li:first-of-type")
.css({"background-color":"#ff0"});
$("li:last-of-type")
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<h1>first-of-type/last-of-type ์ ํ์</h1>
<ul>
<li>๋ด์ฉ1-1</li>
<li>๋ด์ฉ1-2</li>
<li>๋ด์ฉ1-3</li>
</ul>
<ul>
<li>๋ด์ฉ2-1</li>
<li>๋ด์ฉ2-2</li>
<li>๋ด์ฉ2-3</li>
</ul>
</body>
</html>

1-5. nth-child(์ซ์n) / nth-last-of-type(์ซ์) ์ ํ์

$("์์ ์ ํ:nth-child(์ซ์)")
$("์์ ์ ํ:nth-child(์ซ์n)")
$("์์ ์ ํ:nth-last-child(์ซ์)")
์ ํํ ์์ ์ค ์ง์ ํ ์ซ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
์ ํํ ์์ ์ค ์ง์ ํ ๋ฐฐ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
์ ํํ ์์ ์ค ๋ง์ง๋ง ์์น์์ ์ง์ ํ ์ซ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#menu1 li:nth-child(1)")
.css({"background-color":"#ff0"});
$("#menu1 li:nth-child(2n)")
.css({"border":"2px dashed #f00"});
$("#menu2 li:nth-last-child(2)")
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<h1>nth-child()/nth-last-child() ์ ํ์</h1>
<ul id="menu1">
<li>๋ด์ฉ1-1</li>
<li>๋ด์ฉ1-2</li>
<li>๋ด์ฉ1-3</li>
<li>๋ด์ฉ1-4</li>
</ul>
<ul id="menu2">
<li>๋ด์ฉ2-1</li>
<li>๋ด์ฉ2-2</li>
<li>๋ด์ฉ2-3</li>
</ul>
</body>
</html>

1-6. only-child / slice(index) ์ ํ์

$("์์ ์ ํ:only-child")
$("์์ ์ ํ").slice(start index, end index)
์ ํํ ์์๊ฐ ๋ถ๋ชจ ์์์ ํ๋๋ฟ์ธ ์์์์๋ง ์ ํํ๋ค.
์ง์ ๊ตฌ๊ฐ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ํํ๋ค. ์๋ฅผ ๋ค์ด slice(1, 3)์ 1 ์ด๊ณผ 3 ์ดํ์ ์์๋ฅผ ์ ํํ๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#menu1 li").slice(1,3)
.css({"background-color":"#ff0"});
$("li:only-child")
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<h1>only-child / slice(index) ์ ํ์
</h1>
<ul id="menu1">
<li>๋ด์ฉ1-1</li>
<li>๋ด์ฉ1-2</li>
<li>๋ด์ฉ1-3</li>
<li>๋ด์ฉ1-4</li>
</ul>
<ul id="menu2">
<li>๋ด์ฉ2-1</li>
</ul>
</body>
</html>

2. ์ ์ด์ฟผ๋ฆฌ ๋ฐฐ์ด ๊ด๋ จ ๋ฉ์๋ โผ
์ข ๋ฅ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
each() / $.each() | $("์์ ์ ํ").each(function) $.each($("์์ ์ ํ"), function) |
๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฌธ์ ๊ฐ์ฒด๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ธ๋ฑ์ค ์์๋๋ก ํ๋์ฉ ์ ๊ทผํด์ ๊ฐ์ฒด๋ฅผ ์ ํํ๊ณ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ค. |
$.map() | $.map(Array. function) | ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ํจ์์์ ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์ ๋ฐฐ์ด์ ์์๋๋ก ์ ์ฅ๋๋ค. ์๋ก ์ ์ฅ๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. |
$.grep() | $.grep(Array, function) | ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ๋ฐํ๊ฐ์ด true์ธ ๊ฒฝ์ฐ์๋ง ๋ฐฐ์ด์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ฐฐ์ด์ ์ ์ฅ๋๋ฉฐ ๊ทธ ๋ฐฐ์ด์ ๋ฐํํ๋ค. |
$.inArray() | $.inArray(data, Array, start index) | ๋ฐฐ์ด ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ผ๋ฉด ๊ฐ์ฅ ๋งจ ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , ์ฐพ์ง ๋ชปํ๋ฉด -1์ ๋ฐํํ๋ค. start index์ ๊ฐ์ ์ง์ ํ๋ฉด ํด๋น ์์น๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. |
$.isArray() | $.isArray(object) | ์ ๋ ฅํ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ผ๋ฉด true๋ฅผ, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค. |
$.merge() | $.merge(Array1, Array2) | ์ธ์๊ฐ์ผ๋ก ์ ๋ ฅํ 2๊ฐ์ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ํ๋๋ก ๊ทธ๋ฃนํํ๋ค. |
index() | $("์์ ์ ํ").index("์ง์ ์์ ์ ํ") | ์ ํ์๋ก ์์๋ฅผ ๋จผ์ ์ ํํ๋ค. ๊ทธ๋ฐ ๋ค์ ์ง์ ํ ์์์ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. |
2-1. each() / $.each()
jQuery์์ each()์ $.each()๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์๋ฅผ ๋ฐ๋ณต(iterate)ํ ๋ ์ฌ์ฉ๋๋ค.
$("์์ ์ ํ").each(function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {})
$.each($("์์ ์ ํ"), function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {})
$("์์ ์ ํ").each(function() { $(this) })
$.each($("์์ ์ ํ"), function() {$(this) })
์ ๋ ์ค์ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๋ฅผ ์คํํ ๋๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ์ธ๋ฑ์ค ๊ฐ์ด ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค.
๋ฐ๋ฉด ์๋ ๋ ์ค์ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๋ฅผ ์คํํ ๋๋ง๋ค $(this)์๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค.
โ each() โ jQuery ๊ฐ์ฒด(์ ํ๋ ์์๋ค)๋ฅผ ๋ฐ๋ณต
$("li").each(function(index, element) {
console.log(index + ": " + $(element).text()); // ์ธ๋ฑ์ค์ ํ
์คํธ ์ถ๋ ฅ
});
โ๏ธ index โ ํ์ฌ ์์์ ์ธ๋ฑ์ค
โ๏ธ element โ ํ์ฌ ์์ (jQuery ๊ฐ์ฒด๋ก ๊ฐ์ธ๋ ค๋ฉด $(element))
โ $.each() โ ์ผ๋ฐ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด ๋ฐ๋ณต
var arr = ["์ฌ๊ณผ", "๋ฐ๋๋", "ํฌ๋"];
$.each(arr, function(index, value) {
console.log(index + ": " + value); // 0: ์ฌ๊ณผ, 1: ๋ฐ๋๋, 2: ํฌ๋
});
var obj = { name: "Dain", age: 50 };
$.each(obj, function(key, value) {
console.log(key + ": " + value); // name: Dain, age: 50
});
โ๏ธ ๋ฐฐ์ด์์๋ index์ value
โ๏ธ ๊ฐ์ฒด์์๋ key์ value
each() | $.each() | |
๋์ | jQuery ๊ฐ์ฒด (HTML ์์) | ์ผ๋ฐ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด |
์ฌ์ฉ ์์ | $("li").each() | $.each(arr, function(){}) |
๋งค๊ฐ๋ณ์ | (index, element) | (index/key, value) |
โ ์์ ์ฝ๋
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
var obj = [
{"area":"์์ธ"},
{"area":"๋ถ์ฐ"},
{"area":"์ ์ฃผ"}
];
$(obj).each(function(i, o){
console.log(i + ":", o);
});
console.log("==== The End 1 ====");
$.each($("#menu2 li"), function(i, o){
console.log(i + ":", o);
});
console.log("==== The End 2 ====");
$.each($("#menu2 li"), function(i){
console.log(i + ":", $(this));
});
});
</script>
</head>
<body>
<h1>ํ์ ์ ํ์</h1>
<ul id="menu1">
<li>๋ด์ฉ1-1</li>
<li>๋ด์ฉ1-2</li>
<li>๋ด์ฉ1-3</li>
</ul>
<ul id="menu2">
<li>๋ด์ฉ2-1</li>
<li>๋ด์ฉ2-2</li>
<li>๋ด์ฉ2-3</li>
</ul>
</body>
</html>
17~19 ํ
๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋ ๋๋ง๋ค ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๊ทผํ๊ณ ๋งค๊ฐ๋ณ์ i์ o์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ๊ณผ ๊ฐ์ฒด๊ฐ ๋์ ๋๋ค.
27~29ํ
์ ํํ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฐฐ์ด์ ์ ์ฅ๋ ์ ์๋ ์ธใท์์ค ์ค๋ฆ์ฐจ์์ผ๋ก $(this)์ ๋ฐํ๋๋ค.


2-2. $.map() / $.grep() ๋ฉ์๋
โ $.map() ๋ฉ์๋
๋ฐฐ์ด์ ์ ์ฅ๋ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต์คํํ๋ค. ๋ฉ์๋๊ฐ ์คํ๋ ๋ ๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ๊ฐ์ด ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค. ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์ ๋ฐฐ์ด์ ์ ์ฅ๋๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
$.map(Array, function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์1) {
return ๋ฐ์ดํฐ;
});
โ $.grep() ๋ฉ์๋
๋ฐฐ์ด์ ์ ์ฅ๋ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๊ฐ ์คํ๋ ๋๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ์ ๋ณด๊ฐ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค. ๋ฐํ๋ ๋ฐ์ดํฐ๊ฐ true๋ฉด ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
$.grep(Array, function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {
return [true | false];
});
โ ์์์ฝ๋
โ ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด ์ค "area"์ ์์ฑ๊ฐ์ด "์์ธ"์ธ ๊ฐ์ฒด๋ง ์ ํํด์ ์ ๋ฐฐ์ด๋ก ๊ฐ๊ณต
โ ๋ณ์์ ์ฐธ์กฐ ์ํค๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ฅผ ์ฝ์ ํจ๋์ ์ถ๋ ฅํ๊ธฐ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
var arr1 = [{
"area":"์์ธ",
"name":"๋ฌด๋๋ฆฌ"
},{
"area":"๋ถ์ฐ",
"name":"ํ๊ณผ์ฅ"
},{
"area":"๋์ ",
"name":"๋ฐ์ฌ์ฅ"
},{
"area":"์์ธ",
"name":"๋น
๋ง๋ง"
}];
var arr2 = $.map(arr1, function(a, b){
if(a.area == "์์ธ") {
return a;
}
});
console.log(arr2);
console.log("==== first End ====");
var arr3 = $.grep(arr1, function(a, b){
if(a.area == "์์ธ") {
return true;
} else {
return false;
}
});
console.log(arr3);
console.log("==== Second End ====");
});
</script>
</head>
<body>
</body>
</html>

2-3. $.inArray() / $.isArray() / $.merge() ๋ฉ์๋
$.inArray(data, Array, start index)
$.isArray(object)
$.merge(Array1, Array2)
`$.inArray()`๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ์ง์ ํ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ฐพ์ ๋จผ์ ์ฐพ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐํํ๋ค.
`$.isArray()`๋ ์ง์ ํ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ฉด true๋ฅผ, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค.
`.merge()`๋ ๋ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ฅผ ํ๋์ ๊ฐ์ฒด๋ก ๋ฌถ๋๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
var arr1 = ["์์ธ", "๋์ ", "๋ถ์ฐ", "์ ์ฃผ"];
var arr2 = ["ํ๊ตญ", "๋ฏธ๊ตญ", "์ผ๋ณธ", "์ค๊ตญ"];
var obj = {
"name":"์ ๋ถ์ฅ",
"area":"์์ธ"
}
var idxNum = $.inArray("๋ถ์ฐ", arr1);
console.log(idxNum);
var okArray1 = $.isArray(arr1); // ๋ฐฐ์ด ๊ฐ์ฒด๋ฉด true
var okArray2 = $.isArray(obj); // ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ์๋๋ฉด false
console.log(okArray1);
console.log(okArray2);
$.merge(arr2, arr1);
console.log(arr2);
});
</script>
</head>
<body>
</body>
</html>

2-4. index() ๋ฉ์๋
$("์์ ์ ํ").index("์ง์ ์ ํ ์์");
๋ฌธ๋จ ํ๊ทธ ์ค <li>์ id๊ฐ์ด "list3"์ธ ์์ ์ฐพ์์ ์ธ๋ฑ์ค ๋ฐํํ๊ธฐ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
var idxNum = $("li").index($("#list3"));
console.log(idxNum);
});
</script>
</head>
<body>
<h1>๋ฐฐ์ด ๊ด๋ จ ๋ฉ์๋ index()</h1>
<ul>
<li>๋ด์ฉ1</li>
<li>๋ด์ฉ2</li>
<li id="list3">๋ด์ฉ3</li>
<li>๋ด์ฉ4</li>
</ul>
</body>
</html>


3. ์์ฑ ํ์ ์ ํ์ โผ
์์ฑํ์ ์ ํ์๋ ์ ํํ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์นํ๋ ์์ฑ์ ํฌํจ ์ฌ๋ถ๋ฅผ ๋ฐ์ ธ ์์๋ฅผ ์ ํํ๋ ์ ํ์์ด๋ค.
์๋ฅผ ๋ค์ด ์ ํํ ์ด๋ฏธ์ง(img) ์์ ์ค ๊ฒฝ๋ก(src)๊ฐ [images/logo.gif]์ ์ผ์นํ๋ ์ด๋ฏธ์ง ์์๋ ์ ํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
์ข ๋ฅ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
$("์์ ์ ํ[์์ฑ]") | $("li[title]") | <li> ์์ ์ค title ์์ฑ์ด ํฌํจ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ=๊ฐ]") | $("li[title='๋ฆฌ์คํธ']") | <li> ์์ ์ค title ์์ฑ๊ฐ์ด '๋ฆฌ์คํธ'์ธ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ^=ํ ์คํธ]") | $("a[href^="http://]") | <li> ์์ ์ค href ์์ฑ๊ฐ์ด "http://"๋ก ์์ํ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ$=ํ ์คํธ]") | $("a[href$='.com']") | <li> ์์ ์ค href ์์ฑ๊ฐ์ด '.com'์ผ๋ก ๋๋๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[href*=ํ ์คํธ]") | $("a[href*='dain']") | <li> ์์ ์ค href ์์ฑ๊ฐ ์ค์์ 'dain'์ ํฌํจํ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:hidden") | $("li:hidden") | <li> ์์ ์ค ์จ๊ฒจ์ ธ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:visible") | $("li:visible") | <li> ์์ ์ค ๋ณด์ด๋ ์์๋ง ์ ํ |
$(":text") | $(":text") | <input> ์์ ์ค type ์์ฑ๊ฐ์ด "text"์ธ ์์๋ง ์ ํ |
$(":selected") | $(":selected") | selected ์์ฑ์ด ์ ์ฉ๋ ์์๋ง ์ ํ |
$(":checked") | $(":checked") | checked ์์ฑ์ด ์ ์ฉ๋ ์์๋ง ์ ํ |
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
$("#wrap a[target]") //target ์์ฑ ํฌํจํ๋ ์์๋ง ์ ํ
.css({"color":"#f00"});
$("#wrap a[href^=https]") //href ์์ฑ๊ฐ์ด "https๋ก ์์ํ๋ ์์๋ง ์ ํ
.css({"color":"#0f0"});
$("#wrap a[href$=net]") //href ์์ฑ๊ฐ์ด "net"์ผ๋ก ๋๋๋ ์์๋ง ์ ํ
.css({"color":"#00f"});
$("#wrap a[href*=google]") //href ์์ฑ๊ฐ์ด "google"์ด ํฌํจ๋ ์์๋ง ์ ํ
.css({"color":"#000"});
$("#member_f :text") //input ์์ ์ค type ์์ฑ๊ฐ์ด "text"์ธ ์์๋ง ์ ํ
.css({"background-color":"#ff0"});
$("#member_f :password") //input ์์ ์ค type ์์ฑ ๊ฐ์ด "password"์ธ ์์๋ง ์ ํ
.css({"background-color":"#0ff"});
});
</script>
</head>
<body>
<div id="wrap">
<p><a href="http://awesomepossum.tistory.com" target="_blank">์ธ์ ๋ฏธ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ</a></p>
<p><a href="https://naver.com">Naver</a></p>
<p><a href="http://daum.net">Google</a></p>
<p><a href="http://google.co.kr">Daum</a></p>
</div>
<form action="#" method="get" id="member_f">
<p>
<label for="user_id">์์ด๋</label>
<input type="text" name="user_id" id="user_id">
</p>
<p>
<label for="user_pw">๋น๋ฐ๋ฒํธ</label>
<input type="password" name="user_pw" id="user_pw">
</p>
</form>
</body>
</html>

4. ๊ทธ ์ธ์ ์ ํ์ - ์ปจํ ์ธ ํ์ ์ ํ์ โผ
contains() / contents() / has() / not() / end() ํ์ ์ ํ์
$("์์ ์ ํ:contains(ํ
์คํธ)")
$("์์ ์ ํ").contents()
$("์์ ์ ํ:has(์์๋ช
)") / $("์์ ์ ํ").has("์์๋ช
")
$("์์ ์ ํ:not(์ ์ธํ ์์ ์ ํ)") / $("์์ ์ ํ").not(์ ์ธํ ์์ ์ ํ)
$("์์ ์ ํ").ํ์ ์ ํ์().end()
โ
$("์์ ์ ํ:contains(ํ
์คํธ)")
์ ํํ ์์ ์ค์์ ํน์ ํ
์คํธ๋ฅผ ํฌํจํ๋ ์์๋ฅผ ์ฐพ๊ธฐ
์: $("p:contains('hello')") โ <p> ์์ ์ค 'hello'๊ฐ ํฌํจ๋ ์์๋ฅผ ์ ํํ๊ธฐ
โ
$("์์ ์ ํ").contents()
์ ํํ ์์์ **์ง์ ์ ์ธ ์์ ๋
ธ๋(ํ
์คํธ ๋
ธ๋ ํฌํจ)**๋ฅผ ๊ฐ์ ธ์ด
์: $("div").contents() โ <div> ๋ด๋ถ์ ์์๋ฟ๋ง ์๋๋ผ ํ
์คํธ ๋
ธ๋๊น์ง ํฌํจํ์ฌ ๊ฐ์ ธ์ด
โ
$("์์ ์ ํ:has(์์๋ช
)") / $("์์ ์ ํ").has("์์๋ช
")
์ ํํ ์์ ์ค์์ ํน์ ํ์ ์์(์์ ์์)๊ฐ ํฌํจ๋ ์์๋ง ์ ํ
์: $("div:has(p)") ๋๋ $("div").has("p") โ <p> ์์๋ฅผ ํฌํจํ๋ <div>๋ง ์ ํ
โ
$("์์ ์ ํ:not(์ ์ธํ ์์ ์ ํ)") / $("์์ ์ ํ").not(์ ์ธํ ์์ ์ ํ)
์ ํํ ์์ ์ค์์ ํน์ ์์๋ฅผ ์ ์ธํ๊ณ ์ ํ
์: $("li:not(.active)") ๋๋ $("li").not(".active") โ .active ํด๋์ค๊ฐ ์๋ <li> ์์๋ง ์ ํ
โ
$("์์ ์ ํ").ํ์ ์ ํ์().end()
ํ์ ์ ํ์(.find(), .children(), .filter() ๋ฑ)๋ฅผ ์ฌ์ฉํ ํ, .end()๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ ํ์๋ก ๋์๊ฐ
$("div").find("p").css("color", "red").end().css("border", "1px solid black");
- $("div").find("p") โ <div> ๋ด๋ถ์ <p>๋ฅผ ์ ํํ์ฌ ๋นจ๊ฐ์ ์ ์ฉ
- .end() โ $("div") ์ ํ์ผ๋ก ๋๋์๊ฐ
- .css("border", "1px solid black") โ <div>์ ํ ๋๋ฆฌ ์ ์ฉ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
// "#inner_1" ๋ด๋ถ์ <p> ์์ ์ค์์ "๋ด์ฉ1"์ ํฌํจํ๋ ์์๋ฅผ ์ ํ
$("#inner_1 p:contains(๋ด์ฉ1)")
.css({"background-color":"#ff0"});
// "#inner_1" ๋ด๋ถ์ <p> ์์ ์ค์์ <strong> ํ๊ทธ๋ฅผ ํฌํจํ ์์๋ฅผ ์ ํ
$("#inner_1 p:has(strong)")
.css({"background-color":"#0ff"});
// "#outer_wrap"์ ๋ชจ๋ ์ง์ ์์ ๋
ธ๋๋ฅผ ์ ํ
$("#outer_wrap").contents()
.css({"border":"1px dashed #00f"});
// "#inner_2" ์์์ ํ์ <p> ์์์์ ์ฒซ ๋ฒ์ฌ ์์๋ง ์ ์ธํ๊ณ ์ ํ
$("#inner_2 p").not(":first")
.css({"background-color":"#0f0"});
// "#inner_2" ๋ด๋ถ์ <p> ์์ ์ค ์ธ๋ฑ์ค 2๋ฒ ์์๋ฅผ ์ ํ
// ๊ทธ๋ฌ๋ ๋ค์ end()๋ฉ์๋๋ฅผ ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ ํํ๊ธฐ ์ ์ ์ ํ์๊ฐ ์ ์ฉ๋๋ค.
$("#inner_2 p").eq(2).end()
.css({"color":"#f00"});
});
</script>
</head>
<body>
<div id="outer_wrap">
<h1>์ฝํ
์ธ ํ์ ์ ํ์</h1>
<section id="inner_1">
<h1>contains( ), contents( ), has( )</h1>
<p><span>๋ด์ฉ1</span></p>
<p><strong>๋ด์ฉ2</strong></p>
<p><span>๋ด์ฉ3</span></p>
</section>
<section id="inner_2">
<h1>not( ), end( )</h1>
<p>๋ด์ฉ4</p>
<p>๋ด์ฉ5</p>
<p>๋ด์ฉ6</p>
</section>
</div>
</body>
</html>

โ find() / filter() ํ์ ์ ํ์
$("์์ ์ ํ").find("ํ์ ์์ ์ค ํํฐ๋งํ ์์ ์ ํ")
$("์์ ์ ํ").filter("์ ํํ ์์ ์ค ํํฐ๋งํ ์์ ์ ํ")
class ๊ฐ "txt1"๊ณผ "txt2"๊ฐ ํฌํจ๋ <p> ์์๋ฅผ ํ์ธํ๊ธฐ
filter(function() {}) ํจ์์ ์ธ์๊ฐ์ผ๋ก ์ต๋ช ํจ์๋ฅผ ์ ๋ฌํด์ ์ต๋ช ํจ์๊ฐ true๋ฅผ ๋ฐํํ๋ฉด ํด๋น ์์๋ฅผ ์ ํํ๊ธฐ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
// id ๊ฐ์ด "inner_1"์ธ ์์์ ํ์ ์์ ์ค class ๊ฐ์ด
// ".txt1"์ธ ์์๋ฅผ ์ ํํ๊ธฐ
$("#inner_1").find(".txt1")
.css({"background-color":"#ff0"});
// id ๊ฐ์ด "inner_1"์ธ ์์์ ํ์ ์์ ์ค class ๊ฐ์ด
// ".txt2"์ธ ์์๋ฅผ ์ ํํ๊ธฐ
$("#inner_1 p").filter(".txt2")
.css({"background-color":"#0ff"});
// id ๊ฐ์ด "inner_2"์ด๋ฉฐ ํ์ ์์์ธ <p>์ ๊ฐ์๋งํผ ์ต๋ช
ํจ์๊ฐ ์คํ๋จ
$("#inner_2 p").filter(function(idx, obj){
console.log(idx);
return idx % 2 == 0;
})
.css({"background-color":"#0f0"});
});
</script>
</head>
<body>
<div id="outer_wrap">
<h1>์ฝํ
์ธ ํ์ ์ ํ์</h1>
<section id="inner_1">
<h2>find( ), filter( )</h2>
<p class="txt1">๋ด์ฉ1</p>
<p class="txt2">๋ด์ฉ2</p>
</section>
<section id="inner_2">
<h2>filter(function)</h2>
<p>index 0</p>
<p>index 1</p>
<p>index 2</p>
<p>index 3</p>
</section>
</div>
</body>
</html>


5. ์ ํ์์ ํจ๊ป ์์๋๋ฉด ์ ์ฉํ ๋ฉ์๋ โผ
๋ฉ์๋ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
is(":์์ ์ํ") | $(".txt1").is(".visible") | ์ ํํ ์์๊ฐ ๋ณด์ด๋ฉด true ๋ฐํ |
$.noConflict() | let ๋ณ์ = $.noConflict() ๋ณ์("์์ ์ ํ") |
ํ์ฌ ์ ์ด์ฟผ๋ฆฌ์์ ์ฌ์ฉ์ค์ธ $ ๋ฉ์๋ ์ฌ์ฉ์ ์ค๋จํ๊ณ ์๋ก ์ง์ ํ ๋ณ์๋ช ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ |
get() | $("์์ ์ ํ").get(0). style.color =- "#f00" |
์ ํ์์ get(0)์ ์ ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ DOM๋ฐฉ์์ ์คํ์ผ์ ์ฌ์ฉํ ์ ์์ |
โ is ๋ฉ์๋
$("์์ ์ ํ").is(":[checked | selected | visivle | hidden | animated]"))
- ์ ํํ ์ฒดํฌ๋ฐ์ค(checkbox) ๋๋ ๋ผ๋์ค(radio) ๋ฒํผ ์์๊ฐ ์ฒดํฌ๋(checked) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์ ํ ์์(select)์ ์ต์ (option) ์์๊ฐ ์ ํ๋(checked) ์ํ๋ผ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ๋ณด์ด๋ฉด(visible) true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ์จ๊ฒจ์ง(hidden) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ์ ๋๋ฉ์ด์ ๋์(animated) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> ํ์ ์ ํ์ </title>
<script src="js/jquery.js"></script>
<script>
$(function(){
var result_1 = $("#inner_1 p")
.eq(0).is(":visible");
console.log(result_1);
var result_2 = $("#inner_1 p")
.eq(1).is(":visible");
console.log(result_2);
var result_3 = $("#chk1").is(":checked");
console.log(result_3);
var result_4 = $("#chk2").is(":checked");
console.log(result_4);
});
</script>
</head>
<body>
<div id="outer_wrap">
<h1>is( )</h1>
<section id="inner_1">
<h2>๋ฌธ๋จ ํ๊ทธ ์์ญ</h2>
<p>๋ด์ฉ1</p>
<p style="display:none;">๋ด์ฉ2</p>
</section>
<section id="inner_2">
<h2>ํผ ํ๊ทธ ์์ญ</h2>
<p>
<input type="checkbox" name="chk1" id="chk1" checked>
<label for="chk1">์ฒดํฌ1</label>
<input type="checkbox" name="chk2" id="chk2">
<label for="chk2">์ฒดํฌ2</label>
</p>
</section>
</div>
</body>
</html>


6. ์ฐธ๊ณ ์๋ฃ
1.์ ์ธ์ฉ. JavaScript+jQuery ์ ๋ฌธ. ์ด์ง์คํผ๋ธ๋ฆฌ์ฑ. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=353419355
2. Canva์์ ์๋ฃ ์ ์ https://www.canva.com/
3. chatGPT์ ๋ฌผ์ด๋ณด๋ฉด์ ์์ฑ
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

ํ์์ ํ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ์ ํ์๋ก ์ ํํ ์์ ์ค ์ํ๋ ์์๋ฅผ ํ ๋ฒ ๋ ํ์ํด์ ์ข ๋ ์ ํํ๊ฒ ์ ํํ ์ ์๋ค. ๋ํ์ ์ธ ์๋ก ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด์ ์ ํํ๋ ์์นํ์ ์ ํ์
์ ๋ฐฐ์ด์ ๋ด๊ฒจ์ง ์์ ์ค ์ง์ ๋ ์์ฑ๊ณผ ๊ฐ์ผ๋ก ์ ํํ๋ ์์ฑ ํ์ ์ ํ์
๊ฐ ์๋ค.
1. ์์น ํ์ ์ ํ์ โผ
๊ธฐ๋ณธ ์ ํ์๋ก ์ ํํ ์์๋ ๋ฐฐ์ด์ ๋ด๊ธฐ๊ฒ ๋๋ค.
๊ทธ๋์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์์๋ฅผ ์ข ๋ ์ ํํ๊ฒ ์ ํํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ข ๋ฅ | ์ฉ๋ฒ | ์ค๋ช |
$("์์ ์ ํ:first") $("์์ ์ ํ").first() |
$("li:first") $("li").first() |
์ ์ฒด <li> ์์ ์ค ์ฒซ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:last") $("์์ ์ ํ").last() |
$("li:last") $("li").last() |
์ ์ฒด <li> ์์ ์ค ๋ง์ง๋ง ์์๋ง ์ ํ |
$("์์ ์ ํ:odd") | $("li:odd") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ง์ ๋ฒ์งธ(ํ์ ์ธ๋ฑ์ค) ์์๋ง ์ ํ |
$("์์ ์ ํ:even") | $("li:even") | <li> ์์ ๋ฌด๋ฆฌ ์ค ํ์ ๋ฒ์งธ(์ง์ ์ธ๋ฑ์ค) ์์๋ง ์ ํ |
$("์์ ์ ํ:first-of-type") | $("li:first-of-type") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:last-of-type") | $("li:last-of-type") | <li> ์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-child(์ซ์)") | $("li:nth-child(3)") | <li> ์์ ๋ฌด๋ฆฌ ์ค ์ธ ๋ฒ์งธ ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-child(์ซ์n)") | $("li:nth-child(3n)") | <li> ์์ ๋ฌด๋ฆฌ ์ค 3์ ๋ฐฐ์ ๋ฒ์งธ์ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:nth-last-of-type(์ซ์)") | $("li:nth-last-ot-type(2)") | <li> ์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง ์์น๋ก๋ถํฐ ๋ ๋ฒ์งธ์ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:only-child) | $("li:only-child") | ๋ถ๋ชจ ์์ ๋ด์ <li> ์์๊ฐ 1๊ฐ ๋ฟ์ธ <li> ์์๋ง ์ ํ |
$("์์ ์ ํ:eq(index)") $("์์ ์ ํ").eq(index) |
$("li:eq(2)") $("li").eq(2) |
<li> ์์ ์ค ์ธ๋ฑ์ค 2๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ:gt(index)") | $("li:gt(1)") | <li> ์์ ์ค ์ธ๋ฑ์ค 1๋ณด๋ค ํฐ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ:lt(index)") | $("li:lt(1)") | <li> ์์ ์ค ์ธ๋ฑ์ค 1๋ณด๋ค ์์ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
$("์์ ์ ํ").slice(index) | $("li").slice(2) | <li> ์์ ์ค ์ธ๋ฑ์ค 2๋ถํฐ ์ฐธ์กฐํ๋ ์์๋ฅผ ๋ถ๋ฌ ์จ๋ค |
1-1. first / last ์ ํ์

first ์ ํ์๋ ์ ํ๋ ์์ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํํ๋ค.
์ด์ ๋ฐ๋๋ก last ์ ํ์๋ ์ ํ๋ ์์ ์ค ๋ง์ง๋ง ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:first) ๋๋ $("์์ ์ ํ").first() $("์์ ์ ํ:last) ๋๋ $("์์ ์ ํ").last()
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#menu li:first") .css({"background-color":"#ff0"}); $("#menu li:last") .css({"background-color":"#0ff"}); }); </script> </head> <body> <h1>first/last ์ ํ์</h1> <ul id="menu"> <li>๋ด์ฉ1</li> <li>๋ด์ฉ2</li> <li>๋ด์ฉ3</li> <li>๋ด์ฉ4</li> </ul> </body> </html>

1-2. even / odd ์ ํ์

even ์ ํ์๋ ์ ํํ ์์ ์ค ํ์ ๋ฒ์ฌ(์ง์ ์ธ๋ฑ์ค) ์์๋ง ์ ํํ๊ณ , ์ด์ ๋ฐ๋๋ก odd ์ ํ์๋ ์ง์ ๋ฒ์งธ(ํ์ ์ธ๋ฑ์ค) ์์๋ง ์ ํํ๋ค. ํท๊ฐ๋ฆด ์ ์๋๋ฐ ํ์ง์ด ์์ ๊ธฐ์ค์ด ์๋๋ผ ์ธ๋ฑ์ค ๊ธฐ์ค์ด๋ค.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#menu li:even") .css({"background-color":"#ff0"}); $("#menu li:odd") .css({"background-color":"#0ff"}); }); </script> </head> <body> <h1>even/odd ์ ํ์</h1> <ul id="menu"> <li>๋ด์ฉ1</li> <li>๋ด์ฉ2</li> <li>๋ด์ฉ3</li> <li>๋ด์ฉ4</li> </ul> </body> </html>

1-3. eq(index) / lt(index) / gt(index) ํ์ ์ ํ์

- eq(index) ํ์ ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๊ฐ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
- lt(index) ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๋ณด๋ค ์์(lt, Less Than) ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
- gt(index) ์ ํ์๋ ์ ํํ ์์ ์ค ์ง์ ํ ์ธ๋ฑ์ค๋ณด๋ค ํฐ(gt, Greater Than) ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ๋ ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:eq(index)") ๋๋ $("์์ ์ ํ").eq(index) $("์์ ์ ํ:lt(index)") $("์์ ์ ํ:gt(index)")
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#menu li").eq(2) .css({"background-color":"#ff0"}); $("#menu li:lt(2)") .css({"background-color":"#0ff"}); $("#menu li:gt(2)") .css({"background-color":"#f0f"}); }); </script> </head> <body> <h1>eq() / lt() / gt() ์ ํ์</h1> <ul id="menu"> <li>๋ด์ฉ1</li> <li>๋ด์ฉ2</li> <li>๋ด์ฉ3</li> <li>๋ด์ฉ4</li> <li>๋ด์ฉ5</li> </ul> </body> </html>

1-4. first-of-type / last-of-type ์ ํ์

first-of-type ์ ํ์๋ ์ ํํ ์์์ ๋ฌด๋ฆฌ ์ค ์ฒซ ๋ฒ์งธ ์์๋ง ์ ํํ๋ค.
์ด์ ๋ฐ๋๋ก last-of-type ์ ํ์๋ ์ ํํ ์์์ ๋ฌด๋ฆฌ ์ค ๋ง์ง๋ง์ ์์นํ ์์๋ง ์ ํํ๋ค.
$("์์ ์ ํ:first-of-type") $("์์ ์ ํ:last-of-type")
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("li:first-of-type") .css({"background-color":"#ff0"}); $("li:last-of-type") .css({"background-color":"#0ff"}); }); </script> </head> <body> <h1>first-of-type/last-of-type ์ ํ์</h1> <ul> <li>๋ด์ฉ1-1</li> <li>๋ด์ฉ1-2</li> <li>๋ด์ฉ1-3</li> </ul> <ul> <li>๋ด์ฉ2-1</li> <li>๋ด์ฉ2-2</li> <li>๋ด์ฉ2-3</li> </ul> </body> </html>

1-5. nth-child(์ซ์n) / nth-last-of-type(์ซ์) ์ ํ์

$("์์ ์ ํ:nth-child(์ซ์)") $("์์ ์ ํ:nth-child(์ซ์n)") $("์์ ์ ํ:nth-last-child(์ซ์)")
์ ํํ ์์ ์ค ์ง์ ํ ์ซ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
์ ํํ ์์ ์ค ์ง์ ํ ๋ฐฐ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
์ ํํ ์์ ์ค ๋ง์ง๋ง ์์น์์ ์ง์ ํ ์ซ์์ ์์นํ ์์๋ฅผ ์ ํํ๋ค.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#menu1 li:nth-child(1)") .css({"background-color":"#ff0"}); $("#menu1 li:nth-child(2n)") .css({"border":"2px dashed #f00"}); $("#menu2 li:nth-last-child(2)") .css({"background-color":"#0ff"}); }); </script> </head> <body> <h1>nth-child()/nth-last-child() ์ ํ์</h1> <ul id="menu1"> <li>๋ด์ฉ1-1</li> <li>๋ด์ฉ1-2</li> <li>๋ด์ฉ1-3</li> <li>๋ด์ฉ1-4</li> </ul> <ul id="menu2"> <li>๋ด์ฉ2-1</li> <li>๋ด์ฉ2-2</li> <li>๋ด์ฉ2-3</li> </ul> </body> </html>

1-6. only-child / slice(index) ์ ํ์

$("์์ ์ ํ:only-child") $("์์ ์ ํ").slice(start index, end index)
์ ํํ ์์๊ฐ ๋ถ๋ชจ ์์์ ํ๋๋ฟ์ธ ์์์์๋ง ์ ํํ๋ค.
์ง์ ๊ตฌ๊ฐ ์ธ๋ฑ์ค์ ์์๋ฅผ ์ ํํ๋ค. ์๋ฅผ ๋ค์ด slice(1, 3)์ 1 ์ด๊ณผ 3 ์ดํ์ ์์๋ฅผ ์ ํํ๋ค.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#menu1 li").slice(1,3) .css({"background-color":"#ff0"}); $("li:only-child") .css({"background-color":"#0ff"}); }); </script> </head> <body> <h1>only-child / slice(index) ์ ํ์ </h1> <ul id="menu1"> <li>๋ด์ฉ1-1</li> <li>๋ด์ฉ1-2</li> <li>๋ด์ฉ1-3</li> <li>๋ด์ฉ1-4</li> </ul> <ul id="menu2"> <li>๋ด์ฉ2-1</li> </ul> </body> </html>

2. ์ ์ด์ฟผ๋ฆฌ ๋ฐฐ์ด ๊ด๋ จ ๋ฉ์๋ โผ
์ข ๋ฅ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
each() / $.each() | $("์์ ์ ํ").each(function) $.each($("์์ ์ ํ"), function) |
๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฌธ์ ๊ฐ์ฒด๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ธ๋ฑ์ค ์์๋๋ก ํ๋์ฉ ์ ๊ทผํด์ ๊ฐ์ฒด๋ฅผ ์ ํํ๊ณ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๋ค. |
$.map() | $.map(Array. function) | ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ํจ์์์ ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์ ๋ฐฐ์ด์ ์์๋๋ก ์ ์ฅ๋๋ค. ์๋ก ์ ์ฅ๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. |
$.grep() | $.grep(Array, function) | ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์๋งํผ ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋๋ค. ๋ฐํ๊ฐ์ด true์ธ ๊ฒฝ์ฐ์๋ง ๋ฐฐ์ด์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ฐฐ์ด์ ์ ์ฅ๋๋ฉฐ ๊ทธ ๋ฐฐ์ด์ ๋ฐํํ๋ค. |
$.inArray() | $.inArray(data, Array, start index) | ๋ฐฐ์ด ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ผ๋ฉด ๊ฐ์ฅ ๋งจ ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , ์ฐพ์ง ๋ชปํ๋ฉด -1์ ๋ฐํํ๋ค. start index์ ๊ฐ์ ์ง์ ํ๋ฉด ํด๋น ์์น๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. |
$.isArray() | $.isArray(object) | ์ ๋ ฅํ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ผ๋ฉด true๋ฅผ, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค. |
$.merge() | $.merge(Array1, Array2) | ์ธ์๊ฐ์ผ๋ก ์ ๋ ฅํ 2๊ฐ์ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ํ๋๋ก ๊ทธ๋ฃนํํ๋ค. |
index() | $("์์ ์ ํ").index("์ง์ ์์ ์ ํ") | ์ ํ์๋ก ์์๋ฅผ ๋จผ์ ์ ํํ๋ค. ๊ทธ๋ฐ ๋ค์ ์ง์ ํ ์์์ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. |
2-1. each() / $.each()
jQuery์์ each()์ $.each()๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์๋ฅผ ๋ฐ๋ณต(iterate)ํ ๋ ์ฌ์ฉ๋๋ค.
$("์์ ์ ํ").each(function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {}) $.each($("์์ ์ ํ"), function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {}) $("์์ ์ ํ").each(function() { $(this) }) $.each($("์์ ์ ํ"), function() {$(this) })
์ ๋ ์ค์ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๋ฅผ ์คํํ ๋๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ์ธ๋ฑ์ค ๊ฐ์ด ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค.
๋ฐ๋ฉด ์๋ ๋ ์ค์ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๋ฅผ ์คํํ ๋๋ง๋ค $(this)์๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ์์๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค.
โ each() โ jQuery ๊ฐ์ฒด(์ ํ๋ ์์๋ค)๋ฅผ ๋ฐ๋ณต
$("li").each(function(index, element) { console.log(index + ": " + $(element).text()); // ์ธ๋ฑ์ค์ ํ
์คํธ ์ถ๋ ฅ });
โ๏ธ index โ ํ์ฌ ์์์ ์ธ๋ฑ์ค
โ๏ธ element โ ํ์ฌ ์์ (jQuery ๊ฐ์ฒด๋ก ๊ฐ์ธ๋ ค๋ฉด $(element))
โ $.each() โ ์ผ๋ฐ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด ๋ฐ๋ณต
var arr = ["์ฌ๊ณผ", "๋ฐ๋๋", "ํฌ๋"]; $.each(arr, function(index, value) { console.log(index + ": " + value); // 0: ์ฌ๊ณผ, 1: ๋ฐ๋๋, 2: ํฌ๋ });
var obj = { name: "Dain", age: 50 }; $.each(obj, function(key, value) { console.log(key + ": " + value); // name: Dain, age: 50 });
โ๏ธ ๋ฐฐ์ด์์๋ index์ value
โ๏ธ ๊ฐ์ฒด์์๋ key์ value
each() | $.each() | |
๋์ | jQuery ๊ฐ์ฒด (HTML ์์) | ์ผ๋ฐ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด |
์ฌ์ฉ ์์ | $("li").each() | $.each(arr, function(){}) |
๋งค๊ฐ๋ณ์ | (index, element) | (index/key, value) |
โ ์์ ์ฝ๋
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ var obj = [ {"area":"์์ธ"}, {"area":"๋ถ์ฐ"}, {"area":"์ ์ฃผ"} ]; $(obj).each(function(i, o){ console.log(i + ":", o); }); console.log("==== The End 1 ===="); $.each($("#menu2 li"), function(i, o){ console.log(i + ":", o); }); console.log("==== The End 2 ===="); $.each($("#menu2 li"), function(i){ console.log(i + ":", $(this)); }); }); </script> </head> <body> <h1>ํ์ ์ ํ์</h1> <ul id="menu1"> <li>๋ด์ฉ1-1</li> <li>๋ด์ฉ1-2</li> <li>๋ด์ฉ1-3</li> </ul> <ul id="menu2"> <li>๋ด์ฉ2-1</li> <li>๋ด์ฉ2-2</li> <li>๋ด์ฉ2-3</li> </ul> </body> </html>
17~19 ํ
๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ๊ฐ์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๊ฐ ๋ฐ๋ณต ์คํ๋ ๋๋ง๋ค ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๊ทผํ๊ณ ๋งค๊ฐ๋ณ์ i์ o์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ๊ณผ ๊ฐ์ฒด๊ฐ ๋์ ๋๋ค.
27~29ํ
์ ํํ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฐฐ์ด์ ์ ์ฅ๋ ์ ์๋ ์ธใท์์ค ์ค๋ฆ์ฐจ์์ผ๋ก $(this)์ ๋ฐํ๋๋ค.


2-2. $.map() / $.grep() ๋ฉ์๋
โ $.map() ๋ฉ์๋
๋ฐฐ์ด์ ์ ์ฅ๋ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต์คํํ๋ค. ๋ฉ์๋๊ฐ ์คํ๋ ๋ ๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ๊ฐ์ด ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค. ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์ ๋ฐฐ์ด์ ์ ์ฅ๋๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
$.map(Array, function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์1) { return ๋ฐ์ดํฐ; });
โ $.grep() ๋ฉ์๋
๋ฐฐ์ด์ ์ ์ฅ๋ ์์๋งํผ ๋ฉ์๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ค. ๋ฉ์๋๊ฐ ์คํ๋ ๋๋ง๋ค ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2์๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ์ ๋ณด๊ฐ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ ๋๋ค. ๋ฐํ๋ ๋ฐ์ดํฐ๊ฐ true๋ฉด ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
$.grep(Array, function(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) { return [true | false]; });
โ ์์์ฝ๋
โ ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ฒด ์ค "area"์ ์์ฑ๊ฐ์ด "์์ธ"์ธ ๊ฐ์ฒด๋ง ์ ํํด์ ์ ๋ฐฐ์ด๋ก ๊ฐ๊ณต
โ ๋ณ์์ ์ฐธ์กฐ ์ํค๊ณ ์๋กญ๊ฒ ๊ฐ๊ณต๋ ๋ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ฅผ ์ฝ์ ํจ๋์ ์ถ๋ ฅํ๊ธฐ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ var arr1 = [{ "area":"์์ธ", "name":"๋ฌด๋๋ฆฌ" },{ "area":"๋ถ์ฐ", "name":"ํ๊ณผ์ฅ" },{ "area":"๋์ ", "name":"๋ฐ์ฌ์ฅ" },{ "area":"์์ธ", "name":"๋น
๋ง๋ง" }]; var arr2 = $.map(arr1, function(a, b){ if(a.area == "์์ธ") { return a; } }); console.log(arr2); console.log("==== first End ===="); var arr3 = $.grep(arr1, function(a, b){ if(a.area == "์์ธ") { return true; } else { return false; } }); console.log(arr3); console.log("==== Second End ===="); }); </script> </head> <body> </body> </html>

2-3. $.inArray() / $.isArray() / $.merge() ๋ฉ์๋
$.inArray(data, Array, start index) $.isArray(object) $.merge(Array1, Array2)
$.inArray()
๋ ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ์ง์ ํ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฑ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ฐพ์ ๋จผ์ ์ฐพ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐํํ๋ค.
$.isArray()
๋ ์ง์ ํ ๊ฐ์ฒด๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ฉด true๋ฅผ, ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค.
.merge()
๋ ๋ ๋ฐฐ์ด์ ๊ฐ์ฒด๋ฅผ ํ๋์ ๊ฐ์ฒด๋ก ๋ฌถ๋๋ค.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ var arr1 = ["์์ธ", "๋์ ", "๋ถ์ฐ", "์ ์ฃผ"]; var arr2 = ["ํ๊ตญ", "๋ฏธ๊ตญ", "์ผ๋ณธ", "์ค๊ตญ"]; var obj = { "name":"์ ๋ถ์ฅ", "area":"์์ธ" } var idxNum = $.inArray("๋ถ์ฐ", arr1); console.log(idxNum); var okArray1 = $.isArray(arr1); // ๋ฐฐ์ด ๊ฐ์ฒด๋ฉด true var okArray2 = $.isArray(obj); // ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ์๋๋ฉด false console.log(okArray1); console.log(okArray2); $.merge(arr2, arr1); console.log(arr2); }); </script> </head> <body> </body> </html>

2-4. index() ๋ฉ์๋
$("์์ ์ ํ").index("์ง์ ์ ํ ์์");
๋ฌธ๋จ ํ๊ทธ ์ค <li>์ id๊ฐ์ด "list3"์ธ ์์ ์ฐพ์์ ์ธ๋ฑ์ค ๋ฐํํ๊ธฐ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ var idxNum = $("li").index($("#list3")); console.log(idxNum); }); </script> </head> <body> <h1>๋ฐฐ์ด ๊ด๋ จ ๋ฉ์๋ index()</h1> <ul> <li>๋ด์ฉ1</li> <li>๋ด์ฉ2</li> <li id="list3">๋ด์ฉ3</li> <li>๋ด์ฉ4</li> </ul> </body> </html>


3. ์์ฑ ํ์ ์ ํ์ โผ
์์ฑํ์ ์ ํ์๋ ์ ํํ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์นํ๋ ์์ฑ์ ํฌํจ ์ฌ๋ถ๋ฅผ ๋ฐ์ ธ ์์๋ฅผ ์ ํํ๋ ์ ํ์์ด๋ค.
์๋ฅผ ๋ค์ด ์ ํํ ์ด๋ฏธ์ง(img) ์์ ์ค ๊ฒฝ๋ก(src)๊ฐ [images/logo.gif]์ ์ผ์นํ๋ ์ด๋ฏธ์ง ์์๋ ์ ํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
์ข ๋ฅ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
$("์์ ์ ํ[์์ฑ]") | $("li[title]") | <li> ์์ ์ค title ์์ฑ์ด ํฌํจ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ=๊ฐ]") | $("li[title='๋ฆฌ์คํธ']") | <li> ์์ ์ค title ์์ฑ๊ฐ์ด '๋ฆฌ์คํธ'์ธ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ^=ํ ์คํธ]") | $("a[href^="http://]") | <li> ์์ ์ค href ์์ฑ๊ฐ์ด "http://"๋ก ์์ํ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[์์ฑ$=ํ ์คํธ]") | $("a[href$='.com']") | <li> ์์ ์ค href ์์ฑ๊ฐ์ด '.com'์ผ๋ก ๋๋๋ ์์๋ง ์ ํ |
$("์์ ์ ํ[href*=ํ ์คํธ]") | $("a[href*='dain']") | <li> ์์ ์ค href ์์ฑ๊ฐ ์ค์์ 'dain'์ ํฌํจํ๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:hidden") | $("li:hidden") | <li> ์์ ์ค ์จ๊ฒจ์ ธ ์๋ ์์๋ง ์ ํ |
$("์์ ์ ํ:visible") | $("li:visible") | <li> ์์ ์ค ๋ณด์ด๋ ์์๋ง ์ ํ |
$(":text") | $(":text") | <input> ์์ ์ค type ์์ฑ๊ฐ์ด "text"์ธ ์์๋ง ์ ํ |
$(":selected") | $(":selected") | selected ์์ฑ์ด ์ ์ฉ๋ ์์๋ง ์ ํ |
$(":checked") | $(":checked") | checked ์์ฑ์ด ์ ์ฉ๋ ์์๋ง ์ ํ |
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ $("#wrap a[target]") //target ์์ฑ ํฌํจํ๋ ์์๋ง ์ ํ .css({"color":"#f00"}); $("#wrap a[href^=https]") //href ์์ฑ๊ฐ์ด "https๋ก ์์ํ๋ ์์๋ง ์ ํ .css({"color":"#0f0"}); $("#wrap a[href$=net]") //href ์์ฑ๊ฐ์ด "net"์ผ๋ก ๋๋๋ ์์๋ง ์ ํ .css({"color":"#00f"}); $("#wrap a[href*=google]") //href ์์ฑ๊ฐ์ด "google"์ด ํฌํจ๋ ์์๋ง ์ ํ .css({"color":"#000"}); $("#member_f :text") //input ์์ ์ค type ์์ฑ๊ฐ์ด "text"์ธ ์์๋ง ์ ํ .css({"background-color":"#ff0"}); $("#member_f :password") //input ์์ ์ค type ์์ฑ ๊ฐ์ด "password"์ธ ์์๋ง ์ ํ .css({"background-color":"#0ff"}); }); </script> </head> <body> <div id="wrap"> <p><a href="http://awesomepossum.tistory.com" target="_blank">์ธ์ ๋ฏธ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ</a></p> <p><a href="https://naver.com">Naver</a></p> <p><a href="http://daum.net">Google</a></p> <p><a href="http://google.co.kr">Daum</a></p> </div> <form action="#" method="get" id="member_f"> <p> <label for="user_id">์์ด๋</label> <input type="text" name="user_id" id="user_id"> </p> <p> <label for="user_pw">๋น๋ฐ๋ฒํธ</label> <input type="password" name="user_pw" id="user_pw"> </p> </form> </body> </html>

4. ๊ทธ ์ธ์ ์ ํ์ - ์ปจํ ์ธ ํ์ ์ ํ์ โผ
contains() / contents() / has() / not() / end() ํ์ ์ ํ์
$("์์ ์ ํ:contains(ํ
์คํธ)") $("์์ ์ ํ").contents() $("์์ ์ ํ:has(์์๋ช
)") / $("์์ ์ ํ").has("์์๋ช
") $("์์ ์ ํ:not(์ ์ธํ ์์ ์ ํ)") / $("์์ ์ ํ").not(์ ์ธํ ์์ ์ ํ) $("์์ ์ ํ").ํ์ ์ ํ์().end()
โ
$("์์ ์ ํ:contains(ํ
์คํธ)")
์ ํํ ์์ ์ค์์ ํน์ ํ
์คํธ๋ฅผ ํฌํจํ๋ ์์๋ฅผ ์ฐพ๊ธฐ
์: $("p:contains('hello')") โ <p> ์์ ์ค 'hello'๊ฐ ํฌํจ๋ ์์๋ฅผ ์ ํํ๊ธฐ
โ
$("์์ ์ ํ").contents()
์ ํํ ์์์ **์ง์ ์ ์ธ ์์ ๋
ธ๋(ํ
์คํธ ๋
ธ๋ ํฌํจ)**๋ฅผ ๊ฐ์ ธ์ด
์: $("div").contents() โ <div> ๋ด๋ถ์ ์์๋ฟ๋ง ์๋๋ผ ํ
์คํธ ๋
ธ๋๊น์ง ํฌํจํ์ฌ ๊ฐ์ ธ์ด
โ
$("์์ ์ ํ:has(์์๋ช
)") / $("์์ ์ ํ").has("์์๋ช
")
์ ํํ ์์ ์ค์์ ํน์ ํ์ ์์(์์ ์์)๊ฐ ํฌํจ๋ ์์๋ง ์ ํ
์: $("div:has(p)") ๋๋ $("div").has("p") โ <p> ์์๋ฅผ ํฌํจํ๋ <div>๋ง ์ ํ
โ
$("์์ ์ ํ:not(์ ์ธํ ์์ ์ ํ)") / $("์์ ์ ํ").not(์ ์ธํ ์์ ์ ํ)
์ ํํ ์์ ์ค์์ ํน์ ์์๋ฅผ ์ ์ธํ๊ณ ์ ํ
์: $("li:not(.active)") ๋๋ $("li").not(".active") โ .active ํด๋์ค๊ฐ ์๋ <li> ์์๋ง ์ ํ
โ
$("์์ ์ ํ").ํ์ ์ ํ์().end()
ํ์ ์ ํ์(.find(), .children(), .filter() ๋ฑ)๋ฅผ ์ฌ์ฉํ ํ, .end()๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ ํ์๋ก ๋์๊ฐ
$("div").find("p").css("color", "red").end().css("border", "1px solid black");
- $("div").find("p") โ <div> ๋ด๋ถ์ <p>๋ฅผ ์ ํํ์ฌ ๋นจ๊ฐ์ ์ ์ฉ
- .end() โ $("div") ์ ํ์ผ๋ก ๋๋์๊ฐ
- .css("border", "1px solid black") โ <div>์ ํ ๋๋ฆฌ ์ ์ฉ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ // "#inner_1" ๋ด๋ถ์ <p> ์์ ์ค์์ "๋ด์ฉ1"์ ํฌํจํ๋ ์์๋ฅผ ์ ํ $("#inner_1 p:contains(๋ด์ฉ1)") .css({"background-color":"#ff0"}); // "#inner_1" ๋ด๋ถ์ <p> ์์ ์ค์์ <strong> ํ๊ทธ๋ฅผ ํฌํจํ ์์๋ฅผ ์ ํ $("#inner_1 p:has(strong)") .css({"background-color":"#0ff"}); // "#outer_wrap"์ ๋ชจ๋ ์ง์ ์์ ๋
ธ๋๋ฅผ ์ ํ $("#outer_wrap").contents() .css({"border":"1px dashed #00f"}); // "#inner_2" ์์์ ํ์ <p> ์์์์ ์ฒซ ๋ฒ์ฌ ์์๋ง ์ ์ธํ๊ณ ์ ํ $("#inner_2 p").not(":first") .css({"background-color":"#0f0"}); // "#inner_2" ๋ด๋ถ์ <p> ์์ ์ค ์ธ๋ฑ์ค 2๋ฒ ์์๋ฅผ ์ ํ // ๊ทธ๋ฌ๋ ๋ค์ end()๋ฉ์๋๋ฅผ ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ ํํ๊ธฐ ์ ์ ์ ํ์๊ฐ ์ ์ฉ๋๋ค. $("#inner_2 p").eq(2).end() .css({"color":"#f00"}); }); </script> </head> <body> <div id="outer_wrap"> <h1>์ฝํ
์ธ ํ์ ์ ํ์</h1> <section id="inner_1"> <h1>contains( ), contents( ), has( )</h1> <p><span>๋ด์ฉ1</span></p> <p><strong>๋ด์ฉ2</strong></p> <p><span>๋ด์ฉ3</span></p> </section> <section id="inner_2"> <h1>not( ), end( )</h1> <p>๋ด์ฉ4</p> <p>๋ด์ฉ5</p> <p>๋ด์ฉ6</p> </section> </div> </body> </html>

โ find() / filter() ํ์ ์ ํ์
$("์์ ์ ํ").find("ํ์ ์์ ์ค ํํฐ๋งํ ์์ ์ ํ") $("์์ ์ ํ").filter("์ ํํ ์์ ์ค ํํฐ๋งํ ์์ ์ ํ")
class ๊ฐ "txt1"๊ณผ "txt2"๊ฐ ํฌํจ๋ <p> ์์๋ฅผ ํ์ธํ๊ธฐ
filter(function() {}) ํจ์์ ์ธ์๊ฐ์ผ๋ก ์ต๋ช ํจ์๋ฅผ ์ ๋ฌํด์ ์ต๋ช ํจ์๊ฐ true๋ฅผ ๋ฐํํ๋ฉด ํด๋น ์์๋ฅผ ์ ํํ๊ธฐ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ // id ๊ฐ์ด "inner_1"์ธ ์์์ ํ์ ์์ ์ค class ๊ฐ์ด // ".txt1"์ธ ์์๋ฅผ ์ ํํ๊ธฐ $("#inner_1").find(".txt1") .css({"background-color":"#ff0"}); // id ๊ฐ์ด "inner_1"์ธ ์์์ ํ์ ์์ ์ค class ๊ฐ์ด // ".txt2"์ธ ์์๋ฅผ ์ ํํ๊ธฐ $("#inner_1 p").filter(".txt2") .css({"background-color":"#0ff"}); // id ๊ฐ์ด "inner_2"์ด๋ฉฐ ํ์ ์์์ธ <p>์ ๊ฐ์๋งํผ ์ต๋ช
ํจ์๊ฐ ์คํ๋จ $("#inner_2 p").filter(function(idx, obj){ console.log(idx); return idx % 2 == 0; }) .css({"background-color":"#0f0"}); }); </script> </head> <body> <div id="outer_wrap"> <h1>์ฝํ
์ธ ํ์ ์ ํ์</h1> <section id="inner_1"> <h2>find( ), filter( )</h2> <p class="txt1">๋ด์ฉ1</p> <p class="txt2">๋ด์ฉ2</p> </section> <section id="inner_2"> <h2>filter(function)</h2> <p>index 0</p> <p>index 1</p> <p>index 2</p> <p>index 3</p> </section> </div> </body> </html>


5. ์ ํ์์ ํจ๊ป ์์๋๋ฉด ์ ์ฉํ ๋ฉ์๋ โผ
๋ฉ์๋ | ์ฌ์ฉ๋ฒ | ์ค๋ช |
is(":์์ ์ํ") | $(".txt1").is(".visible") | ์ ํํ ์์๊ฐ ๋ณด์ด๋ฉด true ๋ฐํ |
$.noConflict() | let ๋ณ์ = $.noConflict() ๋ณ์("์์ ์ ํ") |
ํ์ฌ ์ ์ด์ฟผ๋ฆฌ์์ ์ฌ์ฉ์ค์ธ $ ๋ฉ์๋ ์ฌ์ฉ์ ์ค๋จํ๊ณ ์๋ก ์ง์ ํ ๋ณ์๋ช ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ |
get() | $("์์ ์ ํ").get(0). style.color =- "#f00" |
์ ํ์์ get(0)์ ์ ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ DOM๋ฐฉ์์ ์คํ์ผ์ ์ฌ์ฉํ ์ ์์ |
โ is ๋ฉ์๋
$("์์ ์ ํ").is(":[checked | selected | visivle | hidden | animated]"))
- ์ ํํ ์ฒดํฌ๋ฐ์ค(checkbox) ๋๋ ๋ผ๋์ค(radio) ๋ฒํผ ์์๊ฐ ์ฒดํฌ๋(checked) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์ ํ ์์(select)์ ์ต์ (option) ์์๊ฐ ์ ํ๋(checked) ์ํ๋ผ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ๋ณด์ด๋ฉด(visible) true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ์จ๊ฒจ์ง(hidden) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
- ์ ํํ ์์๊ฐ ์ ๋๋ฉ์ด์ ๋์(animated) ์ํ๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฐํ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> ํ์ ์ ํ์ </title> <script src="js/jquery.js"></script> <script> $(function(){ var result_1 = $("#inner_1 p") .eq(0).is(":visible"); console.log(result_1); var result_2 = $("#inner_1 p") .eq(1).is(":visible"); console.log(result_2); var result_3 = $("#chk1").is(":checked"); console.log(result_3); var result_4 = $("#chk2").is(":checked"); console.log(result_4); }); </script> </head> <body> <div id="outer_wrap"> <h1>is( )</h1> <section id="inner_1"> <h2>๋ฌธ๋จ ํ๊ทธ ์์ญ</h2> <p>๋ด์ฉ1</p> <p style="display:none;">๋ด์ฉ2</p> </section> <section id="inner_2"> <h2>ํผ ํ๊ทธ ์์ญ</h2> <p> <input type="checkbox" name="chk1" id="chk1" checked> <label for="chk1">์ฒดํฌ1</label> <input type="checkbox" name="chk2" id="chk2"> <label for="chk2">์ฒดํฌ2</label> </p> </section> </div> </body> </html>


6. ์ฐธ๊ณ ์๋ฃ
1.์ ์ธ์ฉ. JavaScript+jQuery ์ ๋ฌธ. ์ด์ง์คํผ๋ธ๋ฆฌ์ฑ. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=353419355
2. Canva์์ ์๋ฃ ์ ์ https://www.canva.com/
3. chatGPT์ ๋ฌผ์ด๋ณด๋ฉด์ ์์ฑ