동적으로 요소생성
1) 문자열로 만드는 방법
let el1 = "<p> 문자열로 요소생성</p>"
2) DOM 메소드로 요소객체 만드는 방법
let el2 = document.createElement("p") ==> <p></p> 요소객체 (요소노드생성)
let text = document.createTextNode(" DOM메소드로 요소생성") // 텍스트 노드 생성
el2.appendChild(text);
3) jQuery로 요소생성
let el3 = $("<p></p>").text("jQuery로 요소생성");
<button id="btn">요소생성</button>
<div id="area1">
</div>
<script>
$(function(){
$("#btn").click(function(){
//<p>~~</p>
// 1. 문자열로 만드는 방법
let el1 = "<p>Create Element By Text</p>"; // 문자열
// 2. DOM 메소드로 요소객체로 만드는 방법 ( 요소노드 : createElement, 텍스트노드 : createTextNode)
let el2 = document.createElement("p"); //<p></p> 요소객체
let text = document.createTextNode("Create Element By DOM"); // 텍스트노드
el2.appendChild(text); // <p>Create Element By DOM</p>
// 3. jQuery로 요소 생성
let el3 = $("<p></p>").text("Create Element By jQuery");
$("#area1").append(el1,el2,el3); // append() : 특정 요소 안에 자손으로 추가
})
})
</script>
>> 화면 출력시 append()메소드
삽입관련 메소드
선택된 요소를 기준으로 새로운 요소를 추가시켜주는 메소드
$(A).append(B) : A요소 내 뒷부분에 B를 추가 (자손/ 하위)
$(A).prepend(B) : A요소 내 앞부분에 B를 추가 (자손/하위)
$(B).prependTo(A) : A요소 내에 앞부분에 B를 추가(자손/하위)
<div id="test1">
<span>A</span>
</div>
<div id="test2">
<span>A</span>
</div>
<div id="test3">
<span>A</span>
</div>
<div id="test4">
<span>A</span>
</div>
<script>
$(function(){
$("#test1").append("<span class='added'>B</span>");
$("#test2").prepend("<span class='added'>B</span>");
$("<span class='added'>B</span>").insertBefore("#test3");
$("<span class='added'>B</span>").insertAfter("#test4");
})
</script>
요소 객체 복제 메소드
변수 = $("선택자").clone([true|false]) : 선택된 요소 객체를 복제해서 반환해주는 메소드
true | false : 복제할 요소에 걸려있는 이벤트까지 복사할 것인지 지정 ( 기본값 false)
<div id="clone-test">
<!--복제할 요소-->
<div id="item1" class="item">
<span>안녕</span>
</div>
</div>
<button id="clone">복제</button>
<div id="clone-result">
</div>
<script>
$(function(){
//복제할 요소에 hover이벤트
$(".item").hover(function(){ //mouseenter
$(this).addClass("purple");
},function(){ //mouseout
$(this).removeClass("purple");
});
})
//복제버튼 클릭시 #item1요소 복사해서 또다른 div안에 붙여넣기
$("#clone").click(function(){
$("#clone-result").append($("#item1").clone(true));
})
</script>
요소 객체 제거 및 잘라내기 메소드
$("선택자"). empty() : 선택된 요소의 하위 요소들을 제거시켜주는 메소드 (선택된 요소 삭제하기위해서는 상위요소 선택)
변수 = $("선택자").remove()| detach() : 선택된 요소 제거 후 해당 제거된 요소를 반환해주는 메소드 (잘라내기)
> remove() : 잘라낸 요소의 이벤트 안가져옴
> detach() :잘라낸 요소의 이벤트 가져옴
<div id="remove-test2">
<!--제거할 요소-->
<div id="item2" class="item">
<span>안녕</span>
</div>
</div>
<button id="empty3">제거</button>
<button id="remove3">잘라내기1</button>
<button id="detach3">잘라내기2</button>
<div id="remove-result12"></div>
<script>
$(function(){
$("#empty3").click(function(){
// $("#item2").empty(); // 선택한요소의 하위요소 비워줌
$("#remove-test2").empty();
})
$("#remove3").click(function(){
const el = $("#item2").remove(); // 제거할요소 선택해서 제거가능
$("#remove-result12").append(el); //이벤트는 작동하지않음
})
$("#detach3").click(function(){
const el = $("#item2").detach();
$("#remove-result12").append(el); //이벤트도 작동
})
})
</script>
'Front > jQuery' 카테고리의 다른 글
jQuery 10. 이벤트 (0) | 2022.12.27 |
---|---|
jQuery 09. 추가적인 메소드 (0) | 2022.12.27 |
jQuery 07. Content영역 관련 메소드 (0) | 2022.12.26 |
jQuery 06. 요소탐색(순회)메소드_ 동위 (0) | 2022.12.26 |
jQuery 05. 요소탐색(순회)메소드_ 자손후손 (0) | 2022.12.26 |