ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jQeury ์ œ์ด์ฟผ๋ฆฌ ๊ธฐ๋ณธ๋ฌธ๋ฒ•, ์„ ํƒ์ž, ํ•„ํ„ฐ
    JavaScript 2020. 9. 24. 15:55

    ๐ŸŽฏ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ์ด์ฟผ๋ฆฌ๋ฅผ  ์•Œ์•„๋ณธ๋‹ค.


     

     

     

    ์ œ์ด์ฟผ๋ฆฌ(jQuery)


    • ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š”(ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • ๋” ์ ‘๊ทผ, ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ, Ajax ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
    • css ์„ ํƒ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ ๋™์  ํ™”๋ฉด์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

     

    ์„ธํŒ…๋ฐฉ๋ฒ•

    ํ™ˆํŽ˜์ด์ง€์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜ cdn์„ ์‚ฌ์šฉํ•œ๋‹ค.

     

    1. CDN ์‚ฌ์šฉ๋ฐฉ๋ฒ•

      html์— ์ œ์ด์ฟผ๋ฆฌ cdn ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

      <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>

    2. ์ œ์ด์ฟผ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ํ›„ ์ดํด๋ฆฝ์Šค ee ๋‹ค์ด๋‚ด๋ฏน ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

    ์ œ์ด์ฟผ๋ฆฌ ํ™ˆํŽ˜์ด์ง€ ์ ‘์† : https://jquery.com/

    ๋‹ค์šด๋กœ๋“œ ํด๋ฆญ

     

     

    compressed๋Š” ์••์ถ•๋ฒ„์ „์ด๊ณ  uncompressed๋Š” ๋น„์••์ถ• ๋ฒ„์ „์ด๋‹ค. slim์€ ๋น„๋™๊ธฐํ†ต์‹ ์ด ๋น ์ง„๊ฑฐ๋ผ ์•ˆ์“ธ๊ฑฐ๋‹ค.

     

    ์••์ถ•๋ฒ„์ „๊ณผ ๋น„์••์ถ•๋ฒ„์ „ ๋น„๊ต

    ์šฉ๋Ÿ‰์ด ๋‹ค์„ฏ ๋ฐฐ ์ด์ƒ ์ฐจ์ด๋‚œ๋‹ค. ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

     

    ์›น์ปจํ…ํŠธ ํด๋” ๋ฐ‘์— ์ œ์ด์ฟผ๋ฆฌ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋™์™„์„ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ Tern์ด ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด ํ„ดํ”„๋กœ์ ํŠธ๋กœ convert ํ•ด์ฃผ๊ธฐ

     

    <script type="text/javascript" src="../jquery-3.5.1.min.js"></script>

    ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ œ์ด์ฟผ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

     

     

     

    ์ œ์ด์ฟผ๋ฆฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•


    $(selector).action();

    $๋ฌธ์ž๋Š” jQuery๋ฅผ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. $๋ฌธ์ž๋Š” ‘jQuery’ ๋ฌธ์ž์˜ ๋ณ„์นญ(alias)์ด๋‹ค. jQuery(selector).action();๊ณผ ๋™์ผํ•˜๋‹ค. action() ๋Š” HTML์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋ฉฐ ์•ˆ์—๋Š” ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

    $(document).ready(function () {
    
        });

    ์ œ์ด์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ ์ฝ”๋“œ ํ˜•ํƒœ์ด๋‹ค. jQuery๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŽ˜์ด์ง€๋Š” ready() ํ•จ์ˆ˜๋กœ ์‹œ์ž‘ํ•˜๋Š”๋ฐ ๋ฌธ์„œ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์ œ์ด์ฟผ๋ฆฌ ์ด๋ฒคํŠธ ๋ฉ”์†Œ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ˜๋ณต ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ์•ž์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ready์˜ ์ต๋ช…ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ž‘์„ฑํ•œ๋‹ค.

    $(document).ready(function () {
        console.log('hello~');
    });
    
    $(function (){
        console.log('ready2');
    });

    $๋ถ€ํ„ฐ ready๊นŒ์ง€๋ฅผ ๊ทธ๋ƒฅ $ ํ•˜๋‚˜๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    ์ œ์ด์ฟผ๋ฆฌ ๊ธฐ๋ณธ ์„ ํƒ์ž


    $("*") : DOM์˜ ๋ชจ๋“  Element ์„ ํƒ
    $("tag") : ์ง€์ •๋œ ํƒœ๊ทธ์™€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  Element ์„ ํƒ
    $("#id") : ์ง€์ •๋œ ์•„์ด๋””์™€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  Element ์„ ํƒ
    $(".class") : ์ง€์ •๋œ ํด๋ž˜์Šค์™€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  Element ์„ ํƒ
    $("tag1,tag2") : ์ง€์ •๋œ ์—ฌ๋Ÿฌ ํƒœ๊ทธ๋“ค๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  Element ์„ ํƒ

     

     

    1. ์ „์ฒด ์„ ํƒ์ž ( * )

    • CSS์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์„ ํƒ์ž๋Š” ์ „์ฒด ์„ ํƒ์ž์ธ Wildcard Selector ์ด๋‹ค.
    • HTML ํŽ˜์ด์ง€์— ์žˆ๋Š” ๋ชจ๋“  ๋ฌธ์„œ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•œ๋‹ค.
    $(document).ready(function(){
        $("*").css("color","red");//์Šคํƒ€์ผ ์ง€์ • , ์ „์ฒด ์„ ํƒ
    });

     

     

    2. ํƒœ๊ทธ ์„ ํƒ์ž ( ํƒœ๊ทธ๋ช… )

    • ํƒœ๊ทธ ์„ ํƒ์ž๋Š” ์ง€์ •ํ•œ ํƒœ๊ทธ๋งŒ ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž ์ด๋‹ค.
    • ํƒœ๊ทธ์˜ ์ด๋ฆ„์„ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ํƒœ๊ทธ ์„ ํƒ์ž ์‚ฌ์šฉ์‹œ ์ฝค๋งˆ(,) ์ด์šฉ.

    <body>
    <input type="text" value="aaaa"/>
    <p>Hello</p>
    <p>Hello2</p>
    <div>World</div>
    <div>world2</div>
    </body>
    $(function(){
        $("p").css("color","red");
        var x = $("p");
        console.log("x======" , x);  
        console.log(x[0],x[1],x.length); 
        console.log(x[0].innerText,x[1].innerText);
        console.log("์ฒซ๋ฒˆ์งธdiv๊ฐ’", $("div")[0].innerText);//์ฃผ์˜ 
        console.log("๋‘๋ฒˆ์งธdiv๊ฐ’", $("div")[1].innerText);//์ฃผ์˜ 
         $("div")[1].innerText="test";
        console.log($("div")[0]);
        $(x[1]).css("color","blue");
    });

    ํƒœ๊ทธ๋ฅผ ๋ณ€์ˆ˜ x์— ์ €์žฅํ•ด์„œ 0๋ฒˆ์งธ, ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ์˜ pํƒœ๊ทธ๋ฅผ ์„ ํƒํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    3. ์•„์ด๋”” ์„ ํƒ์ž ( #id๊ฐ’ )

    • ํŠน์ •ํ•œ id ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์„œ ๊ฐ์ฒด ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž.
    • getElementById() ์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ.

    <p id="a">Hello</p>
    <p id="a2">Hello2</p>
    <div id="b">World</div>
    <span id="c">test</span>
    $(function(){
        $("#a2").css("color", "red");
        var a2 = $("#a2");
        console.log(a2);
    })
        console.log($("#b"));
        console.log($("#b").innerText);
        console.log($("#b").text());

    ํƒœ๊ทธ์™€ ํƒœ๊ทธ ์‚ฌ์ด์˜ ๊ธ€์ž๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ œ์ด์ฟผ๋ฆฌ์—์„  text() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. innerText๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    $("#c").text("aaaaaa");

    ํ…์ŠคํŠธ ๋‚ด์šฉ ์ž์ฒด๋ฅผ ์ƒˆ๋กœ ๋ฐ”๊ฟ€๋• ์ œ์ด์ฟผ๋ฆฌ๋กœ ๊ฐ์ฒด ์…€๋ ‰ํ•˜๊ณ  ํ…์ŠคํŠธ ํ•จ์ˆ˜์•ˆ์— ๋‚ด์šฉ์„ ์ง€์ •ํ•œ๋‹ค.

     

     

    4. ํด๋ž˜์Šค ์„ ํƒ์ž ( .ํด๋ž˜์Šค๋ช… )

    • ํŠน์ •ํ•œ class ์†์„ฑ ๊ฐ€์ง„ ๋ฌธ์„œ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž
    • getElementsByClassName()๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ. ( IE9 ๋ถ€ํ„ฐ์ง€์›)

    <body>
        <p class="notMe">div class="notMe"</p>
        <p class="myClass">div class="myClass"</p>
        <div class="myClass">div class="myClass"</div>
    </body>
    $(function () {
        $(".myClass").css("color", "red");
        console.log("์ฒซ๋ฒˆ์งธ myClass>>", $(".myClass").first().text());
        console.log("๋‘๋ฒˆ์งธ myClass>>", $(".myClass").last().text());
    });

     

     

     

    jQuery ๊ณ„์ธต ์„ ํƒ์ž ( hierarchy )


     

     

    1. ์ž์‹ ์„ ํƒ์ž

    • ์ž์‹์„ ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž
    • ‘๋ถ€๋ชจ > ์ž์‹’์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ

    <div>
            <a href="">daum</a>
            <a href="">naver</a>
            <p>test</p>
            <p>
                <a href="">Google</a>
            </p>
        </div>
    $(function () {
        //์ž์‹๋งŒ ์„ ํƒ
        $("div>a").css("color","red");
        //์ž์†(์ž์‹ํฌํ•จ)
        $("div a").css("font-size","40px");
    })

     

     

    2. ์ž์† ์„ ํƒ์ž

    • ์ž์†์„ ์„ ํƒํ•˜๋Š” ์„ ํƒ์ž ( ์ž์‹ ํฌํ•จ )
    • '์š”์†ŒA ์š”์†ŒB’์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    <form action="">
        <div>๊ธฐ๋ณธ ํผ</div>
        <label for="name">
            ๊ธฐ๋ณธํผ์˜ ์ž์‹
        </label>
        <input name="name" id="name">
        <fieldset>
            <label for="newsletter">๊ธฐ๋ณธํผ์˜ ์ž์†,ํ•„๋“œ์…‹์˜ ์ž์‹</label>
            <input name="newsletter" id="newsletter">
        </fieldset>
    </form>
    ๊ธฐ๋ณธํผ ํ˜•์ œ: <input name="none">
    (function () {
        $("form input").css("border","2px dotted blue");
        $("form fieldset input").css("background-color","yellow");
    })

     

     

    3. ์ธ์ ‘ํ•œ ํ˜•์ œ ์š”์†Œ ์„ ํƒ์ž

    • ๊ฐ™์€ ๋ ˆ๋ฒจ(Level)์˜ ํ˜•์ œ ์š”์†Œ๋“ค ์ค‘์—์„œ ๋ฐ”๋กœ ๋’ค์— ์ธ์ ‘ํ•œ ํ˜•์ œ์š”์†Œ ์ ‘๊ทผ.
    • ‘์š”์†ŒA + ์š”์†ŒB’์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    $(document).ready(function() {
            //pํƒœ๊ทธ ๋ฐ”๋กœ ๋’ค input ํƒœ๊ทธ ๋ฐ˜ํ™˜
            $("label+input").css("color", "red").val("Labeled!!"); 
        });

     

     

    4. ๋ชจ๋“  ํ˜•์ œ ์š”์†Œ ์„ ํƒ์ž

    • ๊ฐ™์€ ๋ ˆ๋ฒจ(Level)์˜ ํ˜•์ œ ์š”์†Œ๋“ค ์ค‘์—์„œ ๋’ค์˜ ๋ชจ๋“  ํ˜•์ œ์š”์†Œ ์ ‘๊ทผ.
    • ‘์š”์†ŒA ~ ์š”์†ŒB’์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    $(document).ready(function() {
            //pํƒœ๊ทธ ๋ฐ”๋กœ ๋’ค ๋ชจ๋“  a ํƒœ๊ทธ 
            $("p~a").css("font-size", "40px");
        });

     

     

     

    jQuery ์†์„ฑ ์„ ํƒ์ž


     

     

    ์š”์†Œ[์†์„ฑ]

    <span>hello</span><br>
     <a href="www kkk xxx">www kkk xxx</a><br>
     <a href="https://daum.net">๋‹ค์Œ</a><br>
     <a href="https://naver.com">๋„ค์ด๋ฒ„</a><br>
     <a href="https://www.google.com">๊ตฌ๊ธ€</a><br>
     <a href="https://haha.net">hahaha</a>
    </body>
    //1. [href]
        $("a[href]").css("color","red").css("font-size","40px");

     

     

    ์š”์†Œ[์†์„ฑ=“๊ฐ’”] , [์†์„ฑ != “๊ฐ’”]

    //2.[href='๊ฐ’']
    $("a[href='https://daum.net']").css("color","red");
    
    //3.[href!='๊ฐ’'] 
    $("a[href!='https://daum.net']").css("color", "red");

     

     

    ์š”์†Œ[์†์„ฑ^=“๊ฐ’”] , [์†์„ฑ $= “๊ฐ’”]

    //4. [href^='https']"  ์†์„ฑ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”
    $("a[href^='https']").css("color", "red");
    
    //5. [href$='๊ฐ’']  ์†์„ฑ๊ฐ’์œผ๋กœ ๋๋‚˜๋Š”
    $("a[href$='.net']").css("color", "red");

     

     

    ์š”์†Œ[์†์„ฑ*=“๊ฐ’”] , [์†์„ฑ ~= “๊ฐ’”]

    //6.[href*='๊ฐ’'] ํŠน์ •๊ฐ’์„ ํฌํ•จํ•˜๋Š” 
    $("a[href*='www']").css("color", "red");
    
    //7. [href~='๊ฐ’'] ๋‹จ์–ดํ˜•ํƒœ๋กœ ํฌํ•จํ•˜๋Š”
    $("a[href~='www']").css({'color':'red', 'background-color':'yellow'});

     

     

     

    jQuery ํ•„ํ„ฐ ์„ ํƒ์ž


    ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. : ๊ธฐํ˜ธ๋ฅผ ์•ž์— ๋ถ™์—ฌ ์‚ฌ์šฉํ•˜๋ฉฐ ๋Œ€๋ถ€๋ถ„ ์ผ๋ฐ˜ ์„ ํƒ์ž์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹จ๋… ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

     

     

    1. ๊ธฐ๋ณธํ•„ํ„ฐ

    :animated

    ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋™์ž‘์ค‘์ธ ๋ชจ๋“  ์š”์†Œ ๋ฐ˜ํ™˜

    run ๋ˆ„๋ฅด๋ฉด ์ค‘๊ฐ„ ๋ฐ•์Šค ํญ์ด ๋ฐ”๋€๋‹ค.

    <button id="run">run</button>
    <div></div>
    <div id="ani"></div>
    <div></div>
    $(function() {
    
            $("#run").click(function() {
                $(":animated").toggleClass('toggleWidth');
            });
            function animateIt() {
                $("#ani").slideToggle("slow", animateIt);
            }
            animateIt();
    
        })
    <style type="text/css">
    div {
        background: red;
        border: 1px solid blue;
        width: 70px;
        height: 70px;
        margin: 0 3px;
        float: left;
    }
    
    .toggleWidth {
        width: 40px;
    }
    </style>

    ๋ฒ„ํŠผ์— ํด๋ฆญ ์ด๋ฒคํŠธ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์ž‘์ค‘์ธ ์š”์†Œ์— ํ† ๊ธ€ ํด๋ž˜์Šค๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ํด๋ž˜์Šค๋ฅผ ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๋บ๋‹ค๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค. slideToggle()์€ ํ•ด๋‹น ์š”์†Œ์— ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๊ฑฐ๋‚˜ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ์Šฌ๋ผ์ด๋“œ ํšจ๊ณผ๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ์ค€๋‹ค. slow๋Š” ๋Š๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋ผ๋Š” ์˜ˆ์•ฝ์–ด์ด๋‹ค.

    css๋ฅผ ๋ณด๋ฉด ๊ธฐ๋ณธ ๋„ˆ๋น„๊ฐ€ 70์ด์—ˆ๋‹ค๊ฐ€ ํ† ๊ธ€ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด 40์œผ๋กœ ๋ณ€ํ•œ๋‹ค.

     

     

    :eq(index)

    • ์ง€์ •ํ•œ index ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.
    • ์Œ์ˆ˜๊ฐ’ ์ง€์ •๋„ ๊ฐ€๋Šฅ. ( ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ )

    <table border="1">
        <tr><td>TD 0</td><td>TD 1</td><td>TD 2</td></tr>
        <tr><td>TD 3</td><td>TD 4</td><td>TD 5</td></tr>
        <tr><td>TD 6</td><td>TD 7</td><td>TD 8</td></tr>
    </table>
    $(function() {
    
            $('td:eq(2)').css("background-color", "green");
            $('td:eq(-1)').css("background-color","green");
    
        })

     

     

    :even ๋ฐ :odd

    • ์ง์ˆ˜ ๋ฒˆ์งธ , ํ™€์ˆ˜ ๋ฒˆ์งธ ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.
    • ์‹ค์ œ ์ง์ˆ˜ ๋ฒˆ์งธ๊ฐ€ ์•„๋‹Œ index์˜ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ. ( index๋Š” 0๋ถ€ํ„ฐ)

    <table border="1">
        <tr><td>์ธ๋ฑ์Šค 0</td></tr>
        <tr><td>์ธ๋ฑ์Šค 1</td></tr>
        <tr><td>์ธ๋ฑ์Šค 2</td></tr>
        <tr><td>์ธ๋ฑ์Šค 3</td></tr>
    </table>
    $(function() {
    
            $('tr:even').css("background-color", "#bbf");
            $('tr:odd').css("font-size","20px");
    
        })

     

     

    :first ๋ฐ :last

    • ์ฒซ ๋ฒˆ์งธ , ๋งˆ์ง€๋ง‰์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.
    • :first๋Š” :eq(0)๊ณผ ๋™์ผํ•˜๊ณ  :last๋Š” :eq(-1)๊ณผ ๋™์ผ.

    $(function() {
    
            $('tr:first').css("background-color", "#bbf");
            $('tr:last').css("font-style","italic");
    
        })

     

     

    :gt(index) ๋ฐ :lt(index)

    • ์ง€์ •๋œ index๋ณด๋‹ค ํฐ ์š”์†Œ(greater than) ๋ฐ ์ž‘์€ ์š”์†Œ(less than) ๋ฐ˜ํ™˜.
    • ์Œ์ˆ˜๊ฐ’ ์ง€์ • ๊ฐ€๋Šฅ

    $(function() {
    
            $('td:gt(4)').css("background-color", "yellow");
            $('td:lt(-2)').text("gt(-2)");
    
        })
    <table border="1">
        <tr><td>TD 0</td><td>TD 1</td><td>TD 2</td></tr>
        <tr><td>TD 3</td><td>TD 4</td><td>TD 5</td></tr>
        <tr><td>TD 6</td><td>TD 7</td><td>TD 8</td></tr>
    </table>

     

     

    :not(selector)

    • selector์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์š”์†Œ ๋ฐ˜ํ™˜.

    ์ธํ’‹์—์„œ checkedํ•œ ์š”์†Œ์˜ not์„ ์„ ํƒํ•˜๋ฉด a,b๊ฐ€ ์ฒดํฌ๋œ๋‹ค.

    $(function () {
        $("input:not(:checked)+span").css("background-color","red");
    })
    <body>
        <div>
            <input type="checkbox" name="a">
            <span>ํ™๊ธธ๋™</span>
        </div>
        <div>
            <input type="checkbox" name="b">
            <span>์ด์ˆœ์‹ </span>
        </div>
        <div>
            <input type="checkbox" name="c" checked="checked">
            <span>์œ ๊ด€์ˆœ</span>
        </div>
    </body>

     

     

    :focus

    • ํ˜„์žฌ ํฌ์ปค์Šค ๋ฐ›์€ ์š”์†Œ ๋ฐ˜ํ™˜

    $(function () {
        $("input").click(function(){
            $("input:focus").css("background-color","yellow");
            $("input:not(:focus)").removeAttr("style");
    
        });
    })
    <body>
        <input type="text" value="one">
        <input type="text" value="two">
        <input type="text" value="three">
    </body>

     

     

    2. Child Filter

    :first-child ๋ฐ :last-child

    • ์ง€์ •๋œ ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ž์‹ , ๋งˆ์ง€๋ง‰ ์ž์‹ ๋ฐ˜ํ™˜.

        $(function() {
                //์ฒซ๋ฒˆ์งธ ์ž์‹ 
                var x = $(":first-child");
                console.log(":first-child", x);
                //์ง€์ •๋œ ul์˜ ๋ถ€๋ชจ๊ธฐ์ค€ 
                var x = $("ul:first-child");
                console.log("ul:first-child",x);    
                //ul์˜ ์ฒซ๋ฒˆ์งธ ์ž์‹
                var x = $("ul > :first-child");
                console.log("ul > :first-child", x);
                //ul์˜ ๋ถ€๋ชจ๊ธฐ์ค€
                var x= $("li:last-child");
                console.log("li:last-child", x);
            });

     

     

    :nth-child(index) , :nth-child(2n)

    • ์ง€์ •๋œ ์š”์†Œ์˜ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ผ์น˜ํ•˜๋Š” index์— ํ•ด๋‹นํ•˜๋Š” ์ž์‹ ๋ฐ˜ํ™˜. ( index๋Š” 1๋ถ€ํ„ฐ )
    • ์œ„์—์„œ ํ–ˆ๋˜ eq๋ž‘ ๋‹ค๋ฅด๊ฒŒ ์–˜๋Š” ์ธ๋ฑ์Šค๊ฐ€ 1๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

    <div>
        <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        </ul>    
    </div>
    <div>
        <ul>
        <li>aaa</li>
        </ul>    
    </div>
    <div>
        <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        </ul>
    </div>
    $(function () {
        $("li:nth-child(2)").css("text-decoration", "underline");
    });

     

     

    :nth-child(even) ํ•„ํ„ฐ ๋ฐ :nth-child(odd)

    • ์ง์ˆ˜ ๋ฒˆ์งธ ์š”์†Œ ๋ฐ ํ™€์ˆ˜ ๋ฒˆ์งธ ์š”์†Œ ๋ฐ˜ํ™˜. ( index๋Š” 1๋ถ€ํ„ฐ ):๋ถ€๋ชจ์š”์†Œ๊ธฐ์ค€

    $(function () {
        $("li:nth-child(even)").css("font-size", "30px");
        $("li:nth-child(odd)").css("background-color", "green");
    });
    <div>
        <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        </ul>    
    </div>
    <div>
        <ul>
        <li>aaa</li>
        </ul>    
    </div>
    <div>
        <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        </ul>
    </div>

     

     

    :only-child

    • ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋Š” ์ž์‹ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.

    $(function () {
        $("li:only-child").css("font-size", "30px");
    });

     

     

    3. Form Filter

     

    :button ํ•„ํ„ฐ ๋ฐ :enable ,:disable

    • input ํƒœ๊ทธ ์ค‘์—์„œ type์†์„ฑ์ด button ๋˜๋Š”
    • ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

    $(function () {
        $(":button").css("border", "3px solid red");
        $("#disable").click(function(){
            $("input[type='text']:enabled").removeAttr("enabled");
            $("input[type='text']:enabled").attr("disabled","disabled");
        });
        $("#enable").click(function(){
            $("input[type='text']:disabled").removeAttr("disabled");
            $("input[type='text']:disabled").attr("enabled","enabled");
        });
        $("form").submit(function (event) {
            event.preventDefault();
        });
    });
    <fieldset>
        <input type="text" id="first">
        <input type="text" id="second" disabled="disabled">
        <input type="button" value="enable" id="enable">
        <button id="disable">disable</button>    
    </fieldset>

     

     

    :checkbox ํ•„ํ„ฐ ๋ฐ :checked

    • type์†์„ฑ์ด checkbox ์š”์†Œ ๋ฐ˜ํ™˜. ( type=“checkbox”์™€ ๋™์ผ )
    • ์†์„ฑ์ด checked ๋˜๋Š” selected๋œ ์š”์†Œ ๋ฐ˜ํ™˜.( checkbox,radio,select ํƒœ๊ทธ์— ์‚ฌ์šฉ )

    <body>
        ์‚ฌ๊ณผ<input type="checkbox" checked="checked" value="์‚ฌ๊ณผ"><br>
        ๋ฐฐ<input type="checkbox" value="๋ฐฐ"><br>
        ๋ฐ”๋‚˜๋‚˜<input type="checkbox" value="๋ฐ”๋‚˜๋‚˜"><br>
        <input type="text">
    </body>
    $(function () {
        $("input:checkbox").wrap("<span></span>").parent().css("border", "3px dotted red");
        $(":text").val($("input:checked").val());
    });

     

     

    4. Content Filter

    :contains(text)

    • ์ง€์ •ํ•œ text ๋ฌธ์ž์—ด์ด ์กด์žฌํ•˜๋Š” ํ•ด๋‹น ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.
    • ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„.
    • ๋Œ€์ƒ ์š”์†Œ ๋ฐ ํ•˜์œ„ ์š”์†Œ๊นŒ์ง€ ๊ฒ€์ƒ‰.

    <div>John Resig</div>
    <div>wokajslf woiesk</div>
    <div>dsjaem Johnxj</div>
    <div>wjkj jo</div>
    <div>
        <span>dlJohn</span>
    </div>
    (function () {
        $("div:contains('John')").css('text-decoration', 'underline');
    });

     

     

    :empty

    • ์ž์‹์š”์†Œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ๋‚ด์šฉ์ด ๋น„์–ด์žˆ๋Š” ์š”์†Œ ๋ฐ˜ํ™˜.
    • ํƒœ๊ทธ ๋“ฑ์ด :empty ํ•„ํ„ฐ ์„ ํƒ์ž์— ์˜ํ•ด ์„ ํƒ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์š”์†Œ์ด๋‹ค.
    $(function () {
        $("td:empty").text("๋นˆ ๋ฌธ์ž์—ด");
    });

     

     

    :has(selector)

    ์ง€์ •๋œ selector๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜.

    $(function () {
        $("div:has(p)").css("background-color", "green");
    });

     

     

    :parent

    ์ž์‹ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜ ํ…์ŠคํŠธ(๋‚ด์šฉ) ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์š”์†Œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. empty ์™€ ๋ฐ˜๋Œ€๋˜๋Š” ์„ ํƒ์ž.

    $(function () {
        $("td:parent").text("์žˆ๋‹ค!!");
    });

     

     

     

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€