일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 카카오프로젝트
- oracle
- javascript
- 보안뉴스 한줄요약
- 자바스크립트 기본 문법
- 파이썬
- 보안뉴스요약
- 랜섬웨어
- php
- 카카오프로젝트 100
- python
- 자바스크립트 객체
- 자바스크립트 jQuery
- 보안뉴스 요약
- 자바스크립트 API
- 자바스크립트 prototype
- ES6
- 자바스크립트
- oracle db
- 깃허브
- 보안뉴스한줄요약
- numpy
- 다크웹
- 자바스크립트 element api
- 보안뉴스
- 자바스크립트 node
- GIT
- Oracle SQL
- 오라클
- 카카오프로젝트100
- Today
- Total
FU11M00N
[ JavaScript ] JS jQuery 노드 (추가,제거,변경,복사,복사,이동) 본문
생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅입니다.
- jQuery 노드 변경 API
jQuery에서 노드를 제어하는 기능은 주로 Manipulation 카테고리에 속해 있습니다.
아래 링크는 jquery api manipulation 관련 링크입니다.
http://api.jquery.com/category/manipulation/
- 추가
추가와 관련된 주요한 메소드는 4가지입니다.
각각의 관계를 그림은 아래와 같습니다.
div 태그가 있다면, 그 div 태그 밖에 형제 관계로 추가되는 것이 before 와 after 입니다.
prepend 와 append 는 하위로 추가됩니다.
- 추가 예제
<div class="target">
content1
</div>
<div class="target">
content2
</div>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('.target').before('<div>before</div>');
$('.target').after('<div>after</div>');
$('.target').prepend('<div>prepend</div>');
$('.target').append('<div>append</div>');
</script>
- 제거
제거와 관련된 API는 remove와 empty가 있습니다.
remove는 선택된 엘리먼트를 제거하는 것입니다.
empty는 선택된 엘리먼트의 텍스트 노드를 제거하는 것입니다.
- 제거 예제
<div class="target" id="target1">
target 1
</div>
<div class="target" id="target2">
target 2
</div>
<input type="button" value="remove target 1" id="btn1" />
<input type="button" value="empty target 2" id="btn2" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#btn1').click(function(){
$('#target1').remove();
})
$('#btn2').click(function(){
$('#target2').empty();
})
</script>
아래 그림은 첫번째 버튼(#btn1) 을 눌렀을 때의 html 결과입니다.
target1 이라는 id 를 가진 div 태그 자체가 사라진 것을 알 수 있습니다.
btn2 를 누르면 아래와같이 됩니다.
빨간색 사각형을 보면, div 태그안에 텍스트가 사라진 것을 확인가능합니다.
- 변경
replaceAll과 replaceWith는 모두 노드의 내용을 교체하는 API입니다.
replaceWith가 제어 대상을 먼저 지정하는 것에 반해서 replaceAll은 제어 대상을 인자로 전달합니다.
- 변경 예제
<div class="target" id="target1">
target 1
</div>
<div class="target" id="target2">
target 2
</div>
<input type="button" value="replaceAll target 1" id="btn1" />
<input type="button" value="replaceWith target 2" id="btn2" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#btn1').click(function(){
$('<div>replaceAll</div>').replaceAll('#target1');
})
$('#btn2').click(function(){
$('#target2').replaceWith('<div>replaceWith</div>');
})
</script>
replaceAll 은 바꿀 내용이 우선적으로 오고, 바뀔 대상이 뒤에 옵니다.
replaceWith 은 바뀔 대상이 앞에, 바꿀 내용이 뒤에 옵니다.
둘이 헷갈릴수도있으니 유의해야합니다.
- 복사
노드를 복사할때는 clone을 사용하면 됩니다.
- 복사 예제
<div class="target" id="target1">
target 1
</div>
<div class="target" id="target2">
target 2
</div>
<div id="source">source</div>
<input type="button" value="clone replaceAll target 1" id="btn1" />
<input type="button" value="clone replaceWith target 2" id="btn2" />
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#btn1').click(function(){
$('#source').clone().replaceAll('#target1');
})
$('#btn2').click(function(){
$('#target2').replaceWith($('#source').clone());
})
</script>
clone 을 이용해서 복사하고, 복사한 내용을 replaceAll 과 replaceWith 을 통해
원래의 요소와 바꾼 코드입니다.
실행하면 다음 그림과 같습니다.
- 이동
dom manipulation API의 인자로 특정 노드를 선택하면 이동의 효과가 납니다.
- 이동 예제
<div class="target" id="target1">
target 1
</div>
<div id="source">source</div>
<input type="button" value="append source to target 1" id="btn1" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#btn1').click(function(){
$('#target1').append($('#source'));
})
</script>
버튼을 누르면 sourece 가 target1 안으로 append 된 것을 확인 할 수 있습니다.
SUA 정보보안 멘토링에 참여하고 있습니다.
'SUA 정보보안 > JavaScript' 카테고리의 다른 글
[ JavaScript ] JS Document 객체 (0) | 2021.02.08 |
---|---|
[ JavaScript ] JS 문자열로 노드 제어 (innerHTML,outerHTML, innerText, outerText,insertAdjacentHTML()) (0) | 2021.02.08 |
[ JavaScript ] JS 노드 추가, 생성 , 제거 , 변경 API (0) | 2021.02.08 |
[ JavaScript ] JS 노드 종류 API , nodeType과 nodeName (0) | 2021.02.08 |
[ JavaScript ] Node 객체 (0) | 2021.02.08 |