티스토리 뷰

[ 1. 객체 편집 메소드 - before / insertBefore / after / insertAfter ] (***)

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>제이쿼리 - 객체편집메소드(***)</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js"></script>

    <script>

        $(function(){

            console.clear();

            // =============================================================

            // 1. 새로운 요소노드(태그)를 어떻게 만드는가? by using jQuery (***)
            //  방법1 : $("<새로운태그명>").text(content 내용) / $("<새로운태그명>").html(content 내용)
            //  방법2 : $("<새로운태그명>컨텐츠 내용</새로운태그명>")

            // =============================================================

            // 2. eq(n) 선택자 : 선택자가 선택한 요소노드중 몇 번째 요소를 가지고 오는지 지정 ( 0번부터 시작한다. ) (***)

            // =============================================================

            $("#wrap p:eq(2)").after("<p>>>> Ater p:eq(2)</p>"); // 인덱스 번호 2에 해당하는 p태그를 선택하여, 그 뒤에 형제관계로 태그를 넣는다.
            $("<p>>>> insert After p:eq(1)</p>").insertAfter("#wrap p:eq(1)"); // 인덱스 번호 1에 해당하는 p태그를 선택하여, 그 뒤에 요소를 넣는다. (***)

            // =============================================================

            $("#wrap p:eq(1)").before("<p>>>> Before p:eq(1)</p>"); // 인덱스 번호 1에 해당하는 p태그를 선택하여, 그 앞에 형제관계로 태그를 넣는다.
            $("<p>>>> insert Before p:eq(0)</p>").insertBefore("#wrap p:eq(0)"); // 인덱스 번호 0에 해당하는 p태그를 선택하여, 그 앞에 형제관계로 태그를 넣는다. (***)

        }); // .jq

    </script>
    
</head>

<body>
    
    <!-- div[id="wrap"]>p*3 -->
    <div id="wrap">
        <p>내용1</p>
        <p>내용2</p>
        <p>내용3</p>
    </div>

</body>

</html>

[ 2. 객체 편집 메소드 2 - append / prepend ( 자식관계로 추가 ) ] (***)

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>제이쿼리 - 객체 편집 메소드</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js"></script>

    <script>

        $(function(){

            console.clear();

            $("<li>appendTo</li>").appendTo("#listZone"); // 선택자로 선택한 요소의 자식태그로써 마지막 태그로 추가한다. (***)
            $("#listZone").prepend("<li>prepend</li>"); // 선택자로 선택한 요소의 자식태그로써 첫번째 태그로 추가한다. (***)

            // append와 prepend는 brfore과 after이 형제관계로 추가하는 것과 다르게 자식관계로 추가된다.

        }); // .jq

    </script>
    
</head>

<body>

    <ul id="listZone">
        <li>리스트</li>
    </ul>
    
</body>

</html>

[ 3. 객체 편집 메소드 3 - clone / remove / empty ] (**)

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>제이쿼리 - 객체편집메소드3</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js"></script>

    <script>

        $(function(){

            console.clear();

            let copyObj = $(".box1").children().clone();
            console.log(copyObj);
            // .box1.children()은 배열로 반환이 되며, .clone은 이를 그대로 복제한다는 의미이다.
            // 예전에는 .clone(true)이면 하위 태그까지 그대로 복사하며, .clone(false)는 해당 태그만 복사했다. (***)

            console.log($(".box1").children().clone()[0]);
            // (method) JQuery.clone(withDataAndEvents?: boolean, deepWithDataAndEvents?: boolean): JQuery
            // 현재에는 블린값을 지정하는 것이 2개로 늘어났으며, 데이터와이벤트를 복사하는지 물어보는 메소드로 변했다.
            // 기본적으로 하위요소를 복사하는 것으로 변했다.

            console.log($(".box1").children().clone(true,false)[0]);

            $(".box2").remove();
            // 해당 요소뿐만이 아니라, remove메소드는 하위요소까지 제거해준다.

            $(".box3").empty();
            // 컨텐츠를 전부 비워버린다.

            $(".box3").append(copyObj);
            // box3에 자식태그로 copyObj를 추가한다. (***)
            
        }); // .jq

    </script>
    
</head>

<body>

    <div class="box1">
        <p>
            내용1
            <strong> 1 ) p태그의 자식태그 (인라인 요소)</strong>
            <!-- <p> 2 ) p태그의 자식태그 2 (블록 요소)</p> -->

            <!-- 블록 요소 내에는 블록요소와 인라인 요소를 포함할 수 있다는 것이 대전제이지만, (***) -->
            <!-- 문단 태그 내에 또 문단 태그를 넣게 되면, 브라우저에서 예상하지 못한 결과가 나타날 수 있기에 지양해야 한다. -->
            <!-- 문단 태그는 텍스트 요소를 기대하기 때문에, 문단태그 내에 공간을 분리하는 div태그가 와도 브라우저가 예외를 발생시킨다. -->
        </p>
        <p>내용2</p>
    </div>

    <div class="box2">
        <p>내용3</p>
        <p>내용4</p>
    </div>

    <div class="box3">
        <p>내용5</p>
        <p>내용6</p>
    </div>

</body>

</html>

[ 4. 객체 편집 메소드 4 - replace ] (***)

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>제이쿼리 - 객체편집메소드4</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js"></script>

    <script>

        $(function(){

            console.clear();

            $("h2").replaceWith("<h3>replace method</h3>");
            // h2태그를 모두 찾아서 <h3>replace method</h3>로 변경(**)
            // replacewith는 대상을 ~으로 바꿔라라는 의미이다.

            $("<p>Change</p>").replaceAll("div");
            // div태그를 전부 <p>Change</p>로 바꾼다.

        }); // .jq
    </script>
    
</head>

<body>

    <!-- section[class=box1]>h2+div*2 -->
    
    <section class="box1">
        <h2>제목1</h2>

        <div>내용1</div>
        <div>내용2</div>
    </section>

    <section class="box2">
        <h2>제목2</h2>

        <div>내용3</div>
        <div>내용4</div>
    </section>

</body>

</html>

[ 5. 객체 편집 메소드 5 - wrap / unwrap ] (****)

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>제이쿼리 - 객체편집 메소드5</title>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js"></script>

    <style></style>

    <script>

        $(function(){

            console.clear();

            // ==============================================================

            // 선택한 요소노드의 부모노드를 삭제해라! ( 부모가 wrap => unwrap )
            $("strong").unwrap();
            // 부모요소만 삭제하고, 해당 요소나 자식/형제요소는 그대로 둔다.

            // ==============================================================

            // 선택한 요소노드의 부모태그를 해당 태그로 생성해라!
            $(".ct1").wrap("<div />");
            // .ct1의 부모요소로 div태그가 생성된다.
            // 이때 class=ct1인 요소가 2개가 있는데, 이때에는 요소가 각각 div태그로 따로 씌워진다.

            // ==============================================================

            // 선택한 요소노드의 부모태그를 해당 태그로 생성해라!
            $(".ct2").wrapAll("<div />");
            // 이때에는 class=ct2인 요소가 2개가 있는데, 이 2개의 요소 모두 같은 부모태그로 묶는다. ( 내용3과 내용4는 형제가 된다. )

            // ==============================================================

            // 선택한 요소의 컨텐츠를 새로운 태그로 감싼다.
            $("li").wrapInner("<h3 />")
            // 이때는 li의 컨텐츠인 목록1과 목록2가 h3태그로 감싸이게 된다.

            // ==============================================================

        }); // .jq

    </script>
    
</head>

<body>
    
    <h1 id="tit_1">
        <strong>객체 조작 및 생성</strong>
        <p>TEST - 제목 태그 내에 문단 태그를 생성할 수 있다.</p>
        <div>TEST2 - 제목 태그 내에 공간태그도 생성할 수 있다.</div>
    </h1>

    <p class="ct1">내용1</p>
    <p class="ct1">내용2</p>
    <p class="ct2">내용3</p>
    <p class="ct2">내용4</p>

    <ul>
        <li>목록1</li>
        <li>목록2</li>
    </ul>
    
</body>

</html>

 

728x90
댓글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
최근에 올라온 글
Total
Today
Yesterday
공지사항