Published 2020. 7. 31. 20:40
728x90
반응형

문서객체 제어

<ul>
    <li id="test1"><a href="https://www.naver.com">네이버로 이동</a></li>
    <li id="test2"></li>
    <li></li>
</ul>
<input type="button" value="확인" id="btn-1">
<input type="button" value="확인" id="btn-2">
<script>
$(function() {  //on load를 굳이 사용하는 이유는 다른 곳에 영향을 안주기 위함
    $("#btn-2").click(function() {
        //ul태그 버튼을 누르면 li태그 추가되도록 만들기(html태그 이용해야함)
        let s = "<li>test3</li>"; //이전요소 바뀜
    //    let s2 = $("<li>test4</li>");
        let s2 = $("<li></li>").text("test4").addClass("haha");

    //    $("ul").html(s2);  //이전요소 날라감
        $("ul").html($("ul").html() + s);  //이전요소 유지
        $("ul").append(s, s2);  //이전요소 유지(덧붙여 쓰기)
    });

    $("#btn-1").click(function() {
        // let s = $("#test1").html();
        // console.log(s);
        // $("#test2").html(s);

        let s = $("#test1").text();
        console.log(s);
        $("#test2").text($("#test1").html()); //html태그가 텍스트로 변환
    });
});
</script>

 

 

요소삽입1 : 추가할 요소 기준

<ul>
    <li>$(B).appendTo($(A)) : B를 A의 자식요소로 마지막에 추가</li>
    <li>$(B).prependTo($(A)) : B를 A의 자식요소로 처음에 추가</li>
    <li>$(B).insertAfter($(A)) : B를 A의 형제요소로 뒤에 추가</li>
    <li>$(B).insertBefore($(A)) : B를 A의 형제요소로 앞에 추가</li>
</ul>
<h1 id="test11"><span>A</span></h1>
<h1 id="test22"><span>A</span></h1>
<h1 id="test33"><span>A</span></h1>
<hr>
<h1 id="test44"><span>A</span></h1>
<input type="button" value="실행" id="btn-3">
<style>
.added{
    color: palegreen;
}
</style>
<script>
$("#btn-3").click(function() {
    let $b = $("<span>B</span>").addClass("added");

    // $b.appendTo($("#test11"));
    // $b.prependTo($("#test22"));
    // $b.insertAfter($("#test33"));
    $b.insertBefore($("#test44"));
});
</script>

 

 

요소삽입2 : 기존 요소 기준

<ul>
    <li>$(A).append($(B)) : B를 A의 자식요소로 마지막에 추가</li>
    <li>$(A).prepend($(B)) : B를 A의 자식요소로 처음에 추가</li>
    <li>$(A).After($(B)) : B를 A의 형제요소로 뒤에 추가</li>
    <li>$(A).Before($(B)) : B를 A의 형제요소로 앞에 추가</li>
</ul>
<h1 id="test55"><span>A</span></h1>
<h1 id="test66"><span>A</span></h1>
<h1 id="test77"><span>A</span></h1>
<hr>
<h1 id="test88"><span>A</span></h1>
<input type="button" value="실행" id="btn-4">
<script>
$("#btn-4").click(function() {
    $b = $("<span>B</span>").addClass("added");
    // $("#test55").append($b);
    // $("#test66").prepend($b);
    // $("#test77").after($b);
    $("#test88").before($b);
});
</script>

 

 

요소 삭제

remove : 제거할 요소의 이벤트 핸들러 제거

detach : 제거할 요소의 이벤트 핸들러 유지

<input type="button" value="확인" id="btn-5">
<div class="deltest">
    <div class="item"></div>
</div>
<hr>
<div class="new_area"></div>
<style>
.item {
    width: 100px;
    height: 100px;
    display: inline-block;
    background-color: lightsteelblue;
    margin: 5px;
}
.lime{
    background-color: lime;
}
</style>
<script>
$(function() {
    $(".item").hover(function() {
        //mouseenter
        $(this).toggleClass("lime");
    }, function(){
        //mouseleave
        $(this).toggleClass("lime");
    });
    $("#btn-5").click(function() {
        // let $item = $(".item").remove();
        let $item = $(".item").detach();
        $(".new-area").append($item);   //$변수는 제이쿼리 변수라는 명시적 선언
    });
});
</script>
반응형

'프로그래밍 > jQuery' 카테고리의 다른 글

jQuery 선택자에 변수 넣기  (0) 2021.11.03
08.03(display)  (0) 2020.08.03
07.30(each, is)  (0) 2020.07.30
07.29(이벤트)  (0) 2020.07.29
07.28(traversing 예제)  (0) 2020.07.28
복사했습니다!