본문 바로가기
Frontend/jQuery

[jQuery] 제이쿼리 삭제 관련 메서드 / removeAttr() / empty() / remove() / detach()

by Ali1020 2022. 6. 9.

[jQuery] 제이쿼리 삭제 관련 메서드

 

 

 - removeAttr() : 선택한 요소의 특정 속성을 제거

    ex) $("img").removeAttr("alt") : img 요소의 alt 속성을 제거

 

 

- empty() : 하위 요소를 제거

   ex ) $("div").empty() : div 요소의 하위 요소 모두 제거

 

 

- remove() : 선택한 요소 삭제

  ex ) $("div").remove() : div 요소 완전히 삭제        

 

 

- detach() : 선택한 요소 삭제 / 원하는 위치에 다시 삽입 가능

  ex) $("p").detach()

 

-

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
    <style>
        div{border: 1px solid #ddd; margin: 10px; width: 100px; height: 30px;}
    </style>
    <script src="./js/jquery-3.6.0.js"></script>
    <script>
        $(function(){
            let detachDiv = ""
            $("button:eq(0)").click(function(){   // 첫 번째 버튼 누르면
                $("#m1 a").removeAttr("href");    // #m1 a 태그의 속성 "href" 삭제
                $("#m2").empty();    // #m2 div의 자식요소 모두 삭제
                $("#m3").remove();    // #m3 div 완전히 삭제
                detachDiv = $("#m4").detach();   // #m4 div 삭제
            })
            $("button:eq(1)").click(function(){  // 두 번째 버튼 누르면
                detachDiv.insertAfter("#m2")    // #m4 div 다시 삽입
            })
        })
    </script>
    </head>
    <body>   
        <div id="m1"><a href="#">링크</a></div>
        <div id="m2"><span>내용1</span></div>
        <div id="m3"><span>내용2</span></div>
        <div id="m4"><span>내용3</span></div>
 
        <button>삭제</button>
        <button>detach</button>
    </body>
 

 

 

 

 

<실행결과>

 

1. 버튼 클릭 전

 

 

 

 

 

2. '삭제'버튼 클릭

'삭제' 버튼 클릭 >

- 첫 번째 div의 a 태그 링크 사라짐 

- 두 번째 div 자식 요소 모두 사라짐(그 결과 div만 남아 브라우저 상에서는 테두리만 보인다)

- 세 번째 div 완전히 삭제(위의 empty와는 다르게 div가 통째로 삭제되는거라 브라우저에 보이지 않는다)

- 네 번째 div 삭제(detach)

 

 

 

 

 

3. 'detach' 버튼 클릭

'detach' 버튼 클릭 >

앞에서 detach() 함수로 인해 삭제되었던 네 번째 div 다시 삽입

댓글