λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JQuery

제이쿼리 : 탐색 μ„ νƒμž

by μ½”νŒŒμΉ΄ 2022. 9. 1.
728x90

제이쿼리 : 탐색 μ„ νƒμž

μ˜€λŠ˜μ€ JQuery의 탐색 μ„ νƒμžμ— λŒ€ν•˜μ—¬ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.


1. κΈ°λ³Έ 탐색 μ„ νƒμž

μ„ νƒμž μ’…λ₯˜ μ„€λͺ…
children() $("div").children() div μš”μ†Œμ˜ μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
parent() $("p").parent() p μš”μ†Œμ˜ λΆ€λͺ¨ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
parents() $("p").parents("div") p μš”μ†Œμ˜ λΆ€λͺ¨κ°€ λ˜λŠ” λͺ¨λ“  div μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
closest() $("p").closest("div") p μš”μ†Œμ˜ λΆ€λͺ¨κ°€ λ˜λŠ” 첫 번째 div μš”μ†Œλ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
next() $("div.m").next() div.m μš”μ†Œμ˜ λ‹€μŒ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
nextAll() $("div.m").nextAll() div.m μš”μ†Œμ˜ λ‹€μŒ μš”μ†Œλ“€μ„ λͺ¨λ‘ μ„ νƒν•©λ‹ˆλ‹€.
nextUntil() $("div.m").nextUntil("p") div.m λ‹€μŒ μš”μ†ŒλΆ€ν„° p μš”μ†Œ μ „κΉŒμ§€μ˜ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
prev() $("div.m").prev() div.m μš”μ†Œμ˜ 이전 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
prevAll() $("div.m").prevAll() div.m μš”μ†Œμ˜ 이전 μš”μ†Œλ“€μ„ λͺ¨λ‘ μ„ νƒν•©λ‹ˆλ‹€.
prevUntil() $("div.m").prevUntil("p") div.m 이전 μš”μ†ŒλΆ€ν„° p μš”μ†Œ λ‹€μŒκΉŒμ§€μ˜ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
siblings() $("div").siblings("p") div μš”μ†Œμ˜ ν˜•μ œ μš”μ†Œ 쀑 p μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
find() $("div").find("span") div μš”μ†Œμ˜ ν•˜μœ„ μš”μ†Œ 쀑 span μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
filter() $("div").filter(".m") div μš”μ†Œ 쀑 classκ°€ "m"인 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
not() $("div").not(".m") div μš”μ†Œ 쀑 classκ°€ "m"이 μ•„λ‹Œ μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
has() $("div").has("span") div μš”μ†Œ 쀑 span μš”μ†Œλ₯Ό ν¬ν•¨ν•˜κ³  μžˆλŠ” μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
eq() $("div").eq(0) div μš”μ†Œ 쀑 indexκ°€ 0인 μš”μ†Œλ“€μ„ μ„ νƒν•©λ‹ˆλ‹€.
gt() $("div").gt(0) indexκ°€ 0보닀 큰 div μš”μ†Œλ“€μ„ μ„ νƒν•©λ‹ˆλ‹€.
lt() $("div").lt(3) indexκ°€ 3보닀 μž‘μ€ div μš”μ†Œλ“€μ„ μ„ νƒν•©λ‹ˆλ‹€.
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>κΈ°λ³Έ 탐색 μ„ νƒμž</title>
    <style>
        * {
            margin: 5px;
        }
    </style>
</head>
<body>
    <div id="m1">
        <a href="#">λ‚΄μš©1_1</a><span>λ‚΄μš©1_2</span>
    </div>
    <div id="m2">
        <div>
            <a href="#">λ‚΄μš©2_1</a><span>λ‚΄μš©2_2</span>
        </div>
    </div>
    <div id="m3">
        <div><span>λ‚΄μš©3_1</span></div>
    </div>
    <div id="m4">
        <span class="m">λ‚΄μš©4_1</span><span>λ‚΄μš©4_2</span><span>λ‚΄μš©4_3</span><em>λ‚΄μš©4_4</em>
    </div>
    <div id="m5">
        <span class="m">λ‚΄μš©5_1</span><span>λ‚΄μš©5_2</span><span>λ‚΄μš©5_3</span>
    </div>
    <div id="m6">
        <div><span>λ‚΄μš©6_1</span></div>
        <div>λ‚΄μš©6_2</div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.1.min.js"
    integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
    crossorigin="anonymous"></script>
    <script>
        $(document).ready(function() {
            $("#m1").children().css("border", "2px solid red");
            $("#m2").children().children("span").css("border", "2px solid orange");
            $("#m3 span").closest("div").css("border", "2px solid yellow");
            $("#m4 > span.m").nextUntil("em").css("border", "2px solid green");
            $("#m5 > span").filter(".m").css("border", "2px solid blue");
            $("#m6 > div").has("span").css("border", "2px solid navy");
        });
    </script>
</body>
</html>

2. 기타 탐색 μ„ νƒμž

μ„ νƒμž μ’…λ₯˜ μ„€λͺ…
add() $("div").add("p")
div μš”μ†Œμ™€ p μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
addBack() $("div").children("p").addBack()
p μš”μ†Œμ™€ 이전 μ„ νƒμš”μ†Œ divλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
end() $("div").find("span").css(...).end().find("em").css(...)
$("div").find("span").css(...)의 싀행이 λλ‚˜λ©΄ 처음 μ„ νƒμž $("div")둜 λ‹€μ‹œ λŒμ•„μ™€
$("div").find("em").css(...)κ°€ μ‹€ν–‰λ©λ‹ˆλ‹€.
is() μ„ νƒν•œ μš”μ†Œλ₯Ό νŒλ³„ν•΄μ£ΌλŠ” μ„ νƒμžλ‘œ, 보톡 if문의 쑰건식에 μ‚¬μš©λ©λ‹ˆλ‹€.
if("div").children().is("p"){
    console.log("p μš”μ†Œκ°€ λ§žμŠ΅λ‹ˆλ‹€.");
}
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>기타 탐색 μ„ νƒμž</title>
    <style>
        * {
            margin: 5px;
        }
    </style>
</head>
<body>
    <div id="m1">
        <div>λ‚΄μš©1_1</div><p>λ‚΄μš©1_2</p>
    </div>
    <div id="m2">
        <p>λ‚΄μš©2</p>
    </div>
    <div id="m3">
        <span>λ‚΄μš©3_1</span><em>λ‚΄μš©3_2</em>
    </div>
    <div id="m4">
        <p>λ‚΄μš©4</p>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.1.min.js"
    integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
    crossorigin="anonymous"></script>
    <script>
        $(document).ready(function() {
            $("#m1 > div").add("#m1 > p").css("border", "2px solid red");
            $("#m2").children("p").addBack().css("border", "2px solid orange");
            $("#m3").find("span").css("border", "2px solid yellow").end().find("em").css("border", "2px solid green");
            if($("#m4").children().is("p")){
                console.log("p μš”μ†Œκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.");
            }
        });
    </script>
</body>
</html>
728x90

λŒ“κΈ€

κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ¦™

CSS
κ΄‘κ³  쀀비쀑