오봉이와 함께하는 개발 블로그

jQuery - DOM 요소 조작 본문

FE/jQuery

jQuery - DOM 요소 조작

오봉봉이 2021. 12. 15. 10:54
728x90

jQuery DOM 요소 조작

  • 동적으로 쉽고 간단하게 DOM 요소 조작 가능
  • DOM 요소 삽입 / 삭제 / 속성 추가 및 삭제 / 클래스 속성
  • DOM 요소 조작 관련 메소드
    • text() : 글자와 관련된 내용을 반환하거나 설정
    • html() : HTML과 관련된 내용을 반환하거나 설정
    • $(선택자).append(A) : 선택자의 내부 요소들 맨 뒤에 A를 삽입
    • $(선택자).prepend(A) : 선택자의 내부 요소들 맨 앞에 A를 삽입
    • $(A).apeentTo(선택자) : A를 선택자의 내부 요소들 맨 뒤에 삽입
    • $(A).prependTo(선택자) : A를 선택자의 내부 요소들 맨 앞에 삽입
    • $(선택자).after(A) : 선택자 뒤에 A 삽입
    • $(선택자).before(A) : 선택자 앞에 A 삽입
    • $(A).insertAfter(선택자) : A를 선택자의 뒤에 삽입
    • $(A).insertBefore(선택자) : A를 선택자의 앞에 삽입
    • $(선택자).remove() : 해당되는 요소 제거
    • $(선택자).empty() : 해당되는 요소의 모든 자식 노드 제거

text()와 html() 메소드

  • 자바스크립트의 innerHTML 속성과 유사
  • 찾은 DOM 요소의 글자(텍스트)를 설정하거나 반환
  • html() : HTML 태그 인식 (태그 효과 적용)
  • text() : HTML 태그 인식하지 못하고 글자로 인식 (<h1> 그대로 출력)
text()와 html() 예제 - DOMtextHtml.html
        <script src="jquery-3.6.0.min.js"></script>
        <script type="text/javascript">
           $(document).ready(function() {
               // 1. text() : 문자열만 반환(태그 제외)
                var aText = $('#a').text(); // 괄호안에 인자 없으면 get()의 의미 
                // 변수 aText는 텍스트 값을 저장한 변수 : 객체의 역할로 메소드 사용 불가
                alert("text : " + aText); // text : A

                // 2. html() : 태그 포함된 문자열 반환
                var bHtml = $('#b').html();// 괄호안에 인자 없으면 get()의 의미
                alert("html : " + bHtml); // html : <h3>B</h3>

                // 3. text(문자열) : <h1>jQuery</h1> 출력 <h1>을 태그로 인식하지 못하고 문자열로 취급하여 출력됨
                // aText.text('<h1>jQuery</h1>'); @@ 변수 aText는 텍스트 값을 저장한 변수 : 객체의 역할로 메소드 사용 불가
                $('#a').text('<h1>jQuery</h1>'); //괄호 안에 같이 있으면 set()의 의미
                // 3. html(문자열) : jQuery 출력 <h1>을 태그로 인식하여 제목이 됨.
                $('#b').html('<h1>jQuery</h1>');
           });
        </script>
</head>
<body>
    <div id="a"><h3>A</h3></div>
    <div id="b"><h3>B</h3></div>
</body>
append()/prepend() 예제 - DOMappend.html
        <style type="text/css">             
            #box { width:500px; height: 200px; line-height:200px; 
                              border:1px solid #000; }
            img {vertical-align:middle;}                    
        </style>    
        <script src="jquery-3.6.0.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {          
               var img = "<img src=\"image/banana.png\">";
               // prepend 버튼 클릭했을 때
               // 선택자 box 내부 요소들 맨 앞에 img 삽입.
               // <img src="image/banana.png"> div 내부 <img src='image/apple.png'>
               $('#prepend').on('click', function() {
                   $('#box').prepend(img);
               });
               // append 버튼 클릭했을 때
               // 선택자 box 내부 요소들 맨 뒤에 img 삽입.
               // div 내부 <img src='image/apple.png'> <img src="image/banana.png"> 
               $('#append').on('click', function() {
                   $('#box').append(img);
               });
               // before 버튼 클릭했을 때
               // 선택자 box 요소 앞에 img 삽입.(<div> 영역 외부에 추가)
               // <img src="image/banana.png"> 
               // <div id="box">
               //     div 내부 <img src='image/apple.png'>
               // </div>  
               $('#before').on('click', function() {
                   $('#box').before(img);
               });
               // after 버튼 클릭했을 때
               // 선택자 box 요소 뒤에 img 삽입.(<div> 영역 외부에 추가)
               // <div id="box">
               //     div 내부 <img src='image/apple.png'>
               // </div>  
               // <img src="image/banana.png"> 
               $('#after').on('click', function() {
                   $('#box').after(img);
               });
                // empty 버튼 클릭했을 때
                // <div id="box"> 태그 안에 들어있는 모든 요소 제거
               $('#empty').on('click', function() {
                   $('#box').empty();
               });
                // remove 버튼 클릭했을 때
                // 박스 앞 / 뒤, 전 / 후 상관 없이 모든 img 태그 자체가 사라짐.
                $('#remove').on('click', function() {
                    $('img').remove();
                // $('#box').remove(); // <div id="box"> 포함해서 box 안에 있는 모든 것들이 사라짐.
               });
               $('#initiate').on('click', function() {
                // img 태그 제거
                $('img').remove();
                // div내부 요소 비우고 추가
                $('#box').empty().append("div 내부 <img src='image/apple.png'>");
               });
            });
        </script>
    </head>

    <body>
        <button id="prepend" >prepend</button> 
        <button id="append" >append</button> 
        <button id="before" >before</button> 
        <button id="after" >after</button> 
        <button id="empty" >empty</button> 
        <button id="remove" >remove</button> 
        <button id=initiate >초기화</button>
        <p>
        <div id="box">
            div 내부 <img src='image/apple.png'>
        </div>    
    </body>
728x90

'FE > jQuery' 카테고리의 다른 글

jQuery - DOM 요소 클래스 속성(CSS 동적 적용)  (0) 2021.12.15
jQuery - DOM 요소의 추가 및 삭제  (0) 2021.12.15
jQuery - each() 메소드  (0) 2021.12.15
jQuery - 이벤트  (0) 2021.12.14
jQuery - 변수  (0) 2021.12.14
Comments