목차
jQuery 요소의 조작
요소의 추가
제이쿼리는 새로운 요소나 콘텐츠를 쉽게 추가 가능하다.
기존 요소의 내부에 추가
- .apeend()
- .prepend()
- appendTo()
- prependTo()
.append()
선택한 요소의 '마지막'에 새로운 요소나 콘텐츠를 추가
$(function() {
$("button").on("click", function() {
$("#list").append("<li> 새로 추가된 아이템</li>");
});
});
.prepend()
선택한 요소의 '처음'에 새로운 요소나 콘텐츠를 추가
$(function() {
$("button").on("click", function() {
$("#list").prepend("<li> 새로 추가된 아이템</li>");
});
});
.appendTo()
선택한 요소를 '해당 요소의 마지막'에 삽입'.
동작은 .append()와 같지만, 소스(source)와 타겟(target)위치가 서로 반대
$(function() {
$("firstBtn").on("click", function() {
// id가 "list"인 요소의 맨 마지막에 id가 "firstItem"인 요소를 추가
$("#fristItem").appendTo("#list");
});
});
.prependTo()
선택한 요소를 '해당 요소의 처음'에 삽입'.
동작은 .prepend()와 같지만, 소스(source)와 타겟(target)위치가 서로 반대
$(function() {
$("button").on("click", function() {
// class가 "item"인 요소의 처음에 앞의 <b>요소를 삽입
$("<b>새로 추가된 콘텐츠</b>").prependTo(".item");
});
});
기존 요소의 내부에 새로운 요소나 콘텐츠를 추가해주는 메소드
메소드 | 설명 |
---|---|
.append() | 선택한 요소의 마지막에 새로운 요소나 콘텐츠를 추가함. |
.prepend() | 선택한 요소의 처음에 새로운 요소나 콘텐츠를 추가함. |
.appendTo() | 선택한 요소를 해당 요소의 마지막에 삽입함. |
.prependTo() | 선택한 요소를 해당 요소의 처음에 삽입함. |
.html() | 해당 요소의 HTML 콘텐츠를 반환하거나 설정함. |
.text() | 해당 요소의 텍스트 콘텐츠를 반환하거나 설정함. |
기존 요소의 외부에 추가
- .before()
- .after()
- insertBefore()
- .insertAfter()
.before() 메소드
선택한 요소의 '바로 앞에' 새로운 요소나 콘텐츠를 추가
$(function() {
$("button").on("click", function() {
// id가 "firstRow"인 요소의 바로 앞에 새로운 <tr> 요소를 추가
$("#firstRow").before("<tr><td> 새로운 행 </td></tr>");
});
});
.after() 메소드
선택한 요소의 '바로 뒤에' 새로운 요소나 콘텐츠를 추가
$(function() {
$("button").on("click", function() {
// id가 "firstRow"인 요소의 바로 뒤에 새로운 <tr> 요소를 추가
$("#firstRow").after("<tr><td> 새로운 행 </td></tr>");
});
});
.insertBefore() 메소드
선택한 요소를 '해당 요소의 앞에' 삽입
동작은 before() 메소드와 동일하지만, 소스(source)와 타겟(target)의 위치가 서로 반대
$(function() {
$("button").on("click", function() {
// id가 "secondColumn"인 요소의 바로 앞에 새로운 <td> 요소를 추가
$("<td><새로운 셀/td>").insertBefore("#secondColumn");
});
});
.insertAfter() 메소드
선택한 요소를 '해당 요소의 뒤에' 삽입
동작은 after() 메소드와 동일하지만, 소스(source)와 타겟(target)의 위치가 서로 반대
$(function() {
$("button").on("click", function() {
// id가 "secondColumn"인 요소의 바로 뒤에 새로운 <td> 요소를 추가
$("<td><새로운 셀/td>").insertAfter("#secondColumn");
});
});
기존 요소의 외부에 새로운 요소나 콘텐츠를 추가해주는 메소드
메소드 | 설명 |
---|---|
.before() | 선택한 요소의 바로 앞에 새로운 요소나 콘텐츠를 추가함. |
.after() | 선택한 요소의 바로 뒤에 새로운 요소나 콘텐츠를 추가함. |
.insertBefore() | 선택한 요소를 해당 요소의 앞에 삽입함. |
.insertAfter() | 선택한 요소를 해당 요소의 뒤에 삽입함. |
기존 요소를 포함하는 요소의 추가
- .wrap()
- .wrapAll()
- wrapInner()
.wrap()
'선택한 요소'를 포함하는 새로운 요소를 추가
$(function() {
$("button").on("click", function() {
// class가 "content"인 요소를 포함하는 새로운 요소를 추가
// <div class='wrapper'><div class='content'></div></div>
$(".content").wrap("<div class='wrapper'></div>");
});
});
.wrapAll()
'선택한 모든 요소'를 포함하는 새로운 요소를 추가
$(function() {
$("button").on("click", function() {
// class가 "content"인 모든 요소를 포함하는 새로운 요소를 추가
// <div class='wrapper'><div class='content'>1</div><div class='content'>2</div></div>
$(".content").wrapAll("<div class='wrapper'></div>");
});
});
.wrapInner()
'선택한 요소에 포함되는' 새로운 요소를 추가
$(function() {
$("button").on("click", function() {
// class가 "content"인 각 요소에 포함되는 새로운 요소를 추가
//<div class='content'>1<div class='wrapper'></div></div>
$(".content").wrapInner("<div class='wrapper'></div>");
});
});
기존 요소를 포함하는 새로운 요소를 추가해주는 메소드
메소드 | 설명 |
---|---|
.wrap() | 선택한 요소를 포함하는 새로운 요소를 추가함. |
.wrapAll() | 선택한 모든 요소를 포함하는 새로운 요소를 추가함. |
.wrapInner() | 선택한 요소에 포함되는 새로운 요소를 추가함. |
요소의 복사 및 삭제
요소의 복사
- clone
clone()
선택한 요소를 복사하여 새로운 요소를 생성
$(function() {
$("button").on("click", function() {
// id가 "firstItem"인 요소를 복사하여 id가 "list"인 요소에 추가
$("firstItem").clone().appendTo("#list");
});
});
.clone() 메소드는 기존의 HTML을 복사하여 새로운 HTML 요소를 생성한다.
.appendTo()만을 사용할 경우, 기존에 존재하는 HTML 요소를 그대로 추가한다.
요소를 복사해주는 메소드
메소드 | 설명 |
---|---|
.clone() | 선택한 요소를 복사하여 새로운 요소를 생성함. |
요소의 대체
- .replaceAll()
- .replaceWith()
.replaceAll()
선택한 요소를 지정된 요소로 대체
이 메소드는 인수로 선택자나 제이쿼리 객체, HTML DOM 요소, 배열 등을 전달받을 수 있다.
$(function() {
$("button").on("click", function() {
// class가 "item"인 각 요소를 id가 "firstItme"인 요소로 대체함.
$("#firstItem").replaceAll(".item");
});
});
.replaceWith()
선택한 요소를 지정된 요소로 대체
- 이 메소드는 인수로 선택자나 제이쿼리 객체, HTML DOM 요소, 배열 등을 전달받을 수 있다.
- 선택한 요소를 대체할 수 있는 컨텐츠를 반환하는 함수를 인수로 전달받을 수도 있다.
reaplaceAll() 과 동작이 비슷하지만, 소스(source)와 타겟(target)의 위치가 서로 반대
replaceWith()은 지정된 요소로 대체되어 제거된 기존 요소를 반환
$(function() {
$("button").on("click", function() {
// class가 "item"인 모든 요소를 id가 "firstItme"인 요소로 대체함.
$(".item").replaceWith($("#firstItem"));
});
});
요소를 대체해주는 메소드
메소드 | 설명 |
---|---|
.replaceAll() | 선택한 요소를 지정된 요소로 대체함. |
.replaceWith() | 선택한 모든 요소를 지정된 요소로 대체함. |
요소의 삭제
- .remove()
- .detach()
- .empty()
- .unwrap()
.remove()
선택한 요소를 DOM 트리에서 삭제
- 이때 삭제되는 요소와 연관된 제이쿼리 데이터나 이벤트도 모두 함께 삭제
$(function() {
$("button").on("click", function() {
// class가 "content"인 요소 중에서 class가 각각 "first", "second"인 요소를 모두 삭제함.
$(".content").remove(".first, .second");
});
});
.detach()
선택한 요소를 DOM 트리에서 삭제
- 이때 삭제되는 요소와 연관된 제이쿼리 데이터나 이벤트는 삭제되지 않고, 계속 유지
- .detach() 메소드가 반환하는 제이쿼리 객체를 .append()나 .prepend()와 같은 메소드에 인수로 전달하면 삭제한 요소를 다시 복구 가능
$(function() {
var data;
$("#detachBtn").on("click", function() {
data = $(".content").detach(); // class가 "content"인 요소를 모두 삭제함.
});
$("#restoreBtn").on("click", function() {
$("#container").append(data); // detach() 메소드로 삭제되었던 모든 요소를 다시 추가함.
});
});
.empty()
선택한 요소의 자식 요소를 모두 삭제
- 이때 .remove()나 .detach() 메소드와는 달리 선택된 요소 그 자체는 삭제되지 않는다.
$(function() {
$("button").on("click", function() {
$("#container").empty(); // id가 "container"인 요소의 자식 요소를 모두 삭제함.
});
});
.unwrap()
선택한 요소의 부모 요소를 삭제합니다.
$(function() {
$("button").on("click", function() {
$("span").unwrap(); // 모든 <span>요소의 부모 요소를 삭제함.
});
});
요소를 삭제해주는 메소드
메소드 | 설명 |
---|---|
.remove() | 선택한 요소를 DOM 트리에서 삭제함. (삭제된 요소와 연관된 제이쿼리 데이터나 이벤트도 같이 삭제됨) |
.detach() | 선택한 요소를 DOM 트리에서 삭제함. (삭제된 요소와 연관된 제이쿼리 데이터나 이벤트는 유지됨) |
.empty() | 선택한 요소의 자식 요소를 모두 삭제함. |
.unwrap() | 선택한 요소의 부모 요소를 삭제함. |
'JavaScirpt > jQuery' 카테고리의 다른 글
jQuery 6 - [스타일 설정, 프로퍼티, 클래스 설정] (0) | 2021.03.22 |
---|---|
jQuery 5 - [요소의 영역, 요소의 크기, 위치 ] (0) | 2021.03.17 |
jQuery 4 - [요소 탐색, 조상, 형제, 자손, 기타 탐색, 필터링 ] (0) | 2021.03.15 |
jQuery 2 - [기본, 문법, 함수, 선택자, 메소드 체이닝, getter, setter] (0) | 2021.03.09 |
jQuery 1 - [개요, 기초, 적용] (0) | 2021.03.09 |