Web/JavaScript

[jQuery] 엘리먼트 제어 (Manipulation)

돈기법 2022. 3. 28. 17:44

jQuery는 엘리먼트를 제어하는 일관되고 풍부한 기능들을 제공한다.

 

 

- 자식으로 삽입 (.append())

<p>
I would like to say:
</p>
<script>$("p").append("<strong>Hello</strong>");</script>
  • 결과
<p>
I would like to say:
<strong>Hello</strong>
</p>

 

 

- 형제로 삽입 (.after())

<p>
I would like to say:
</p>
<script>$("p").after("<b>Hello</b>");</script>
  • 결과
<p>
I would like to say:
</p>
<b>Hello</b>

 

 

- 부모로 감싸기 (.wrap())

<span>Span Text</span>
<strong>What about me?</strong>
<span>Another One</span>
<script>$("span").wrap("<div><div><p><em><b></b></em></p></div></div>");</script>
  • 결과
<div>
    <div>
        <p>
            <em>
                <b>
                <span>Span Text</span>
                </b>
            </em>
        </p>
    </div>
</div>

 

 

- 삭제 (.remove())

<p>
Hello
</p>
how are
<p>
you?
</p>
<button>
Call remove() on paragraphs
</button>

<script>
    $("button").click( function () {
    	$("p").remove();
    });
</script>

버튼을 누를 시 p 태그를 모두 삭제한다.

 

 

- 치환 (.replaceAll(), .replaceWith())

<p> Hello </p>
<p> cruel </p>
<p> World </p>
<script>$("<b>Paragraph. </b>").replaceAll("p"); // 선택한 요소를 지정된 요소로 대체한다. </script>
  • 결과
<b>Paragraph. </b>
<b>Paragraph. </b>
<b>Paragraph. </b>

.replaceWith() 메소드는 replaceAll() 과 비슷하지만 소스와 타깃의 위치가 서로 반대다.

 

// $("<b>Paragraph. </b>").replaceAll("p");

$(지정된 요소).replaceAll(선택된 요소);

 

// $(".item").replaceWith($("#firstItem")); -> item 클래스를 갖고 있는 엘리먼트의 id를 firstItem을 바꾼다.
$(선택한 요소).replaceWith(지정된 요소);

 

또한 replaceWith() 메소드는 지정된 요소로 대체되어 제거된 기존 요소를 반환한다.

 

 

- 클래스 (.toggleClass())

<p class="blue"> Click to toggle </p>
<p class="blue highlight"> highlight </p>
<p class="blue"> on these </p>
<p class="blue"> paragraphs </p>
<script>
    $("p").click( function () {
    	$(this).toggleClass("highlight");    // p 태그를 클릭 시 해당 p 태그 클래스에 highlight가 있으면 제거 없으면 추가
    });
</script>

 

 

- 속성제어 (.val())

<input type="text" value="some text"/>
<p>
</p>

<script>
$("input").keyup( function () {
    var value = $(this).val();    // input에 들어온 값을 .val() 메소드로 가져와서
    $("p").text(value);          // p 태그의 값으로 지정해준다.
}).keyup();                     // 초기 값을 셋팅 해주기 위한 트리거 .keyUp() 함수를 호출해준다.
</script>