본문 바로가기
멀티캠퍼스 풀스택 과정/프론트엔드

프론트엔드5-3. jquery 요소의 조작1(추가, 삭제, 변경, 복사)

by 이쟝 2022. 2. 16.

1. 특정 객체의 내용을 변경하거나 가져오기: html( ) text( )

html( ) text( )
객체에 html 태그를 추가하거나 객체를 가져올 수 있다. 객체내의 내용을 문자로 추가하거나 얻어올 수 있다.

1. html 파일

<body>
<h1 id="obj">객체조작</h1>
<h2 id="obj2">객체조작2</h2>

2. js파일

// html( )
// 선택자 객체에 테그를 추가하는 기능(set)
$("#obj").html("<a href='https://www.naver.com'>네이버</a>로 이동하기")

// 선택자 내의 태그를 얻어오기(get)
let tag = $("#obj").html();
console.log(tag);

// text( )
// 선택자 객체에 테그를 추가하는 기능(set)
$("#obj2").text("<b>text를 객체에 추가하기</b>");

// 선택자 내의 태그를 얻어오기(get)
let tag2 = $("#obj2").text();
console.log(tag2);

2. js파일

$("body").html("");  // body태그의 내용을 모두 지움
		
// 이미지 추가
tag = "<ul><li id='i'><img src='../img/nature.jpg'/></li></ul>";
$("body").html(tag);

2. 선택자 바로 앞쪽에 객체 추가하기: before( ) insertBefore( )

$(선택자).before(내용(컨텐츠))

$(내용(컨텐츠)).insertBefore(선택자)
  • before(  ) : 선택한 요소를 해당 요소의 앞에 추가한다. 
  • insertBefore(  ) : 선택한 요소를 해당 요소의 앞에 추가한다. 동작은 before( )와 같지만 선택자와 내용의 위치가 서로 반대로 되어있다.

1. CSS파일 

ul,li{
    margin:0; padding:0;
    list-style-type:none;
}
li,img {
    float:left; outline:1px solid gray;
    width:100px; height:100px;
    text-align:center;
}
$("body").html("<ul><li id='i'><img src='../img/nature.jpg'/></li></ul>");
	
$("#i").before("<li>before</li>");
$("<li>insertBefore</li>").insertBefore("#i");


3. 선택자 바로 뒤쪽에 객체 추가하기: after( ) insertAfter( )

$(선택자).after(내용(컨텐츠))

$(내용(컨텐츠)).insertAfter(선택자)
  • after(  ) : 선택한 요소를 해당 요소의 뒤에 추가한다. 
  • insertAfter(  ) : 선택한 요소를 해당 요소의 뒤에 추가한다. 동작은 after( )와 같지만 선택자와 내용의 위치가 서로 반대로 되어있다.
$("#i").after("<li>after</li>");
$("<li>insertAfter</li>").insertAfter("#i");


4. 선택자의 마지막내용으로 추가 : append( ) appendTo( )

$(선택자).append(내용(컨텐츠))

$(내용(컨텐츠)).appendTo(선택자)
  • append(  ) : 선택한 요소를 해당 요소의 뒤에 추가한다. 
  • appendTo(  ) : 선택한 요소를 해당 요소의 뒤에 추가한다. 동작은 append( )와 같지만 선택자와 내용의 위치가 서로 반대로 되어있다.
  • after와 달리 선택자의 자손으로 들어가게 된다. 
$("#i").append("<li>append</li>");
$("<li>appendTo</li>").appendTo("#i");

  • 자손으로 안들어가게 하기 위해서(after보다 뒤에 위치)
$("ul").append("<li>append</li>");
$("<li>appendTo</li>").appendTo("ul");


5. 선택자의 내용 중 제일 앞에 추가 : prepend( ) prependTo( )

$(선택자).prepend(내용(컨텐츠))

$(내용(컨텐츠)).prependTo(선택자)
  • prepend(  ) : 선택한 요소를 해당 요소의 제일 앞에 추가한다. 
  • prependTo(  ) : 선택한 요소를 해당 요소의 제일 앞에 추가한다. 동작은 prepend( )와 같지만 선택자와 내용의 위치가 서로 반대로 되어있다.
  • before와 달리 선택자의 자손으로 들어가게 된다. 
$("#i").prepend("<li>prepend</li>");
$("<li>prependTo</li>").prependTo("#i");

  • 자손으로 안들어가게 하기 위해서(before보다 앞에 위치) 
$("ul").prepend("<li>prepend</li>");
$("<li>prependTo</li>").prependTo("ul");


6. 객체를 복사 : clone( )

  • 선택한 요소를 복사해 새로운 객체로 생성한다. 복사는 재사용이 불가능하다. 
  • 반드시 .append() 메서드나 .appendTo()와 같은 메서드를 이용해 추가해야 한다. 
let clone = $("ul>li").eq(3).clone(); // ul의 자손 li중에 인덱스가 3인 위치를 복사
$("ul").append(clone);


7. 선택자의 내용을 지우기 : empty( ), remove( )

  • empty( ): 선택자의 내용을 지우기 
  • remove( ): 선택자를 포함해 지우기

1. empty( )

$("<li id='p'>insertBefore</li>").insertBefore("#i"); // insertBefore에 id="p"추가

$("#p").empty(); // insertBefore
  • 선택자의 내용만 지워진다.
    • 복사본은 안지워진다. (노란색) 

2. remove( )

$("<li id='p2'>insertBefore</li>").insertBefore("#i"); // insertBefore에 id="p2"추가

$("#p").remove(); // insertBefore
  • 선택자의 객체를 다 지운다. 
    • 복사본은 안지워진다.(노란색)


8. 선택자의 객체를 치환: replaceAll( ), replaceWith( )

$(선택자).replaceAll(내용(컨텐츠))

$(내용(컨텐츠)).replaceWith(선택자)
  • prepend(  ) : 선택한 요소를 지정된 요소로 치환한다. 
  • prependTo(  ) : 선택한 요소를 지정된 요소로 치환한다. 동작은 replaceAll( )와 같지만 선택자와 내용의 위치가 서로 반대로 되어있다.

1. replaceAll( )

$("<li>RepalceAll</li>").replaceAll("li:last");  // 마지막 li를 치환
  • 맨 마지막 insertBefore가 치환되었다. 

2. replaceWith( )

$("#i").replaceWith("<li>replaceWith</li>");
  • img("#i")가 치환되었다.