동기방식은 서버에 신호를 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있고 비동기 방식은 그와 반대로
신호를 보냈을때 응답 상태와 상관없이 다음 동작을 수행할 수 있다는 점이 다르다.
Ajax를 이용하는 이유는 화면 전환 없이 클라이언트와 서버간에XML, JSON(JavaScript Object Notation), 텍스트,
HTML등의 정보를 교환하기 위해서이다.
다시말해, Ajax를 이용하면 사용자가 서버에 자료를 요청할 때 화면전환없이 요청한 자료를 전송받을 수 있다.
또한 자료를 요청할 경우 어느정도 시간이 소요되는데 반해 Ajax를 이용하면 사용자가 기다릴 필요 없이
다른 작업을 바로 수행할 수 있다.
Ajax 관련 메소드
종류
설명
load()
외부 컨텐츠를 가져올 때 사용한다.
$.ajax()
데이터를 서버에 HTTP POST, GET 방식으로 전송할 수 있으며, HTML, XML, JSON, 텍스트 유형에 데이터를 요청할 수 있는 통합적인 메소드이다. 이 표에 있는 $.post(), $.get(), $.getJSON() 메소드의 기능을 하나로 합쳐 놓은것이라고 보면 된다.
$.post()
데이터를 서버에 HTTP POST 방식으로 전송한 후 서버측의 응답을 받을 때 사용한다.
$.get()
데이터를 서버에 HTTP GET 방식으로 전송한 후 서버 측의 응답을 받을 때 사용한다.
$.getJSON()
데이터를 서버에 HTTP GET 방식으로 전송한 후 서버측의 응답을 JSON형식으로 받을 때 사용한다.
$.getScript()
Ajax를 이용하여 외부 자바스크립트를 불러온다. 예) $(“button”).click(function(){ $.getScript(“demo_ajax_script.js”); });
.ajaxStop(function(){…})
비동기 방식으로 서버에 응답 요청이 완료되었을 때 함수가 실행된다.
.ajaxSuccess(function(){…})
ajax 요청이 성공적으로 완료되면 함수가 실행된다.
.ajaxComplete(function(){…})
ajax 통신이 완료되면 함수가 실행된다.
load() 메소드
사용자가 지정한 URL주소에 데이터를 전송하고 외부 컨텐츠를 요청하여 가져올 때 사용한다.
요청한 컨텐츠를 이용해 선택한 요소의 내용을 바꿀 수 있다.
기본형은 다음과 같다.
$(요소 선택).load(url, data, 콜백 함수)
다음 URL주소에는 외부 컨텐츠를 요청할 외부 주소를 입력하고, data에는 전송할 데이터를 입력한다.
그리고 전송이 완료되면 콜백함수에 저장된 코드가 실행된다. 이때 전송할 데이터와 콜백함수의 입력은 생략할 수
있다.
다음은 load() 함수를 사용하여 외부파일(jquery_ajax_news.html)의 일부요소를 불러오는 예제이다.
jquery_ajax_news.html
<body>
<p id="news_1">Contrary to popular belief, Lorem Ipsum is not simply random text.
It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.</p>
<p id="news_2">The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested.</p>
</body>
1. curl_init() : cURL을 사용하기 위해 초기화 하는 메소드로, cURL 세션을 생성한다.
2. curl_setopt(세션, 옵션, 값) : 생성된 cURL 세션의 옵션을 설정한다.
옵션에 적용 가능한 값
CURLOPT_URL:접속할 url 주소 설정
CURLOPT_SSL_SERIFYPEER:SSL인증서 검사 여부 결정
CURLOPT_RETURNTRANSFER:결과값을 받을 것인지의 여부 설정
CURLOPT_HEADER:헤더 정보 출력 여부 설정
3. curl_exec():cURL 세션을 실행한다.
4. curl_close():cURL 세션을 종료한다.
다음은 웹 호스팅에서 PHP언어의 cURL 메소드를 사용해 오늘의 주요뉴스 데이터(XML)를 불러오는 예제이다.
1은 진행중(inprogress)인 첫 번째 애니메이션만 정지시킨다. 큐에 대기중인 애니메이션은 계속해서 실행한다.
2는 clearQueue, finish는 true나 false의 값을 입력할 수 있다(기본값은 false). clearQueue가 true면 큐에서
대기중인 애니메이션을 모두 제거한다. finish가 true면 진행중인 애니메이션을 강제로 종료한다.
1. 진행중인 애니메이션만 정지시키는 경우
$(".txt1").animate({opacity:0.5}, 1000)
.animate({marginLeft:"500px"}, 1000};
$(".txt1").stop();
2. 대기중인 애니메이션은 제거하고 진행중인 애니메이션은 강제로 종료하는 경우
$(".txt2").animate({opacity:0.5}, 1000)
.animate({marginLeft:"500px"}, 1000);
$(".txt2").stop(true, true);
stop() 메소드는 첫번째, 두번째 인자값(clearQueue, finish)에 따라 메소드 적용방식이 달라진다.
모든 인자값을 생략한 stop()메소드는 진행중인 애니메이션만 정지시키낟.
모든 인자값에 true를 적용하면 대기중인 애니메이션은 제거되고 진행중인 애니메이션은 강제로 종료된다.
그래서 실제로는 애니메이션이 아닌 css메소드를 적용한 것 처럼 보인다.
다음은 애니메이션 실행을 지연시키는 delay()의 기본형이다.
$("요소 선택").delay(지연시간).애니메이션 효과 메소드();
애니메이션 함수 앞에 delay(3000)메소드를 적용하면 3초 후에 애니메이션이 적용된다.
그리고 이벤트를 등록한 이후에도 동적으로 생성된 요소와 복제된 요소에도 이벤트를 등록한다.
다음은 delegate()의 기본형이다.
$([document | "이벤트 대상의 상위 요소 선택"]).delegate("이벤트 대상 요소 선택", "이벤트 종류",
function(){
자바스크립트코드;
});
one() 메소드는 이벤트가 1회 발생하면 자동으로 등록된 이벤트가 제거된다.
즉, 1회성 이벤트를 등록할 때 사용한다. one() 메소드도 등록 방식에 따라 '라이브 이벤트'의 등록이 가능하다.
다음은 one()의 기본형이다.
1. one() 기본 이벤트 등록 방식
$("이벤트 대상 선택").one("이벤트종류", function(){
자바스크립트코드;
});
2. one() 라이브 이벤트 등록 방식
$([document | "이벤트 대상의 상위 요소 선택"]).one("이벤트 종류", "이벤트 대상 요소 선택",
function(){
자바스크립트코드;
});
다음은 delegate(), one() 메소드를 사용한 예제이다.
<script>
$(function(){
$(".btn_wrap").delegate(".btn_1.on",
"mouseover focus", function(){
alert("HELLO!");
});
$(".btn_1").addClass("on");
//[버튼1]에 마우스 포인터(포커스)를 올리면 경고창에
//"HELLO!"라는 메시지가 출력.
//라이브 이벤트 방식으로 이벤트를 등록하기 때문에
//새로 생성한 요소에도 이벤트가 적용된다.
$(document).one("mouseover focus"
".btn_2.on", function(){
alert("WELCOME!");
});
$(".btn_2").addClass("on");
//[버튼2]에 마우스 포인터(포커스)를 올리면 경고창에
//"WELCOME!"이라는 메시지가 출력
//이벤트는 1회만 발생
});
</script>
</head>
<body>
<div id="wrap">
<p><button class="btn_1">버튼1</button>
</p>
<p><button class="btn_2">버튼2</button></p>
</div>
</body>
1. on()이벤트 해제를 위한 off()메소드
- 기본 이벤트 제거 방식
$("이벤트 대상 요소 선택").off("이벤트 종류");
- 라이브 이벤트 제거 방식
$([document | "이벤트 대상 상위 요소 선택"]).off("이벤트 종류", "이벤트 대상 요소 선택");
2. bind() 이벤트 해제를 위한 unbind()메소드
$("이벤트 대상 요소 선택").unbind("이벤트 종류");
3. delegate() 이벤트 해제를 위한 undelegate() 메소드
- 기본 이벤즈 제거 방식
$("이벤트 대상 요소 선택").delegate("이벤트 종류");
- 라이브 이벤트 제거 방식
$([document | "이벤트 대상의 상위 요소 선택"]).undelegate("이벤트 대상 선택", "이벤트 종류");
다음은 on() 메소드로 '기본 등록 방식'과 '라이브 이벤트 등록 방식'을 사용해 각각의 버튼에 이벤트를 등록하고,
이벤트 객체에는 이벤트 타입에 맞는 다양한 정보를 제공하는 속성과 메소드가 포함되어 있다.
다음은 이벤트 객체를 생성하기 위한 기본형이다.
$("이벤트 대상 선택").mousemove(function(매개변수){
매개변수(이벤트 객체), 속성;
});
다음은 이벤트 객체의 속성과 메소드 종류를 정리한 표이다.
구분
종류
설명
마우스이벤트
clientX
마우스 포인터의 X 좌표값 반환(스크롤 이동거리 무시)
clientY
마우스 포인터의 Y 좌표값 반환(스크롤 이동거리 무시)
pageX
스크롤 X축의 이동한 거리를 계산하여 마우스 포인터의 X좌표값을 반환
pageY
스크롤 Y축의 이동한 거리를 계산하여 마우스 포인터의 Y 좌표값을 반환
screenX
화면 모니터를 기준으로 마우스 포인터의 X 좌표값을 반환
screenY
화면 모니터를 기준으로 마우스 포인터의 Y 좌표값을 반환
layerX
position을 적용한 요소를 기준으로 마우스 포인터의 X 좌표값을 반환
layerY
position을 적용한 요소를 기준으로 마우스 포인터의 Y 좌표값을 반환
button
마우스 버튼의 종류에 따라 값을 반환(왼쪽:0, 휠:1, 오른쪽:2)
키보드 이벤트
keyCode
키보드의 아스키 코드값을 반환
altKey
이벤트 발생 시 Alt키가 눌렸으면 true를 아니면 false를 반환
ctrlKey
이벤트 발생 시 ctrl키가 눌렸으면 true를 아니면 false를 반환
shiftKey
이벤트 발생 시 shift키가 눌렸으면 true를 아니면 false를 반환
전체 이벤트
target
이벤트가 전파된 마지막 요소를 가리킨다
cancelBubble
이벤트의 전파를 차단하는 속성으로, 기본값은 false이며, true로 설정하면 전파가 차단
stopPropagation()
이벤트의 전파를 차단
preventDefault()
기본이벤트를 차단. 예를들어 <a>에 클릭 이벤트를 적용하고 사용자가 이벤트를 발생시키면 기본 이벤트가 등록되어 있어 링크주소로 이동하는데, 이런 기본이벤트를 차단할 수 있다.
scroll()이벤트 메소드
scroll() 메소드는 대상 요소의 스크롤바가 이동할 때마다 이벤트를 발생시키거나 강제로 scroll 이벤트를 발생시키는데
사용한다.
기본형은 다음과 같다.
1. scroll 이벤트 등록
$("이벤트 대상 선택").scroll(function(){자바스크립트 코드;});
$("이벤트 대상 선택").on("scroll", function(){자바스크립트코드;});
2. scroll 이벤트 강제 발생
$("이벤트 대상 선택").scroll();
다음은 스타일을 사용하여 스크롤바를 생성한 다음 사용자가 스크롤바를 이동시킬 때마다 이벤트가 발생되도록
포커스는 마우스로 <a> 또는 <input> 태그를 클릭하거나 Tab 키를 누르면 생성된다.
마우스 이벤트는 마우스가 없으면 사용할 수 없다. 마우스가 없다면 사용자는 키보드만 가지고 사용해야 하는데 이 때
사용자가 키보드만으로 사이트를 이용해도 불편함이 없도록 제이쿼리가 잘 작동되어야 하는데, 이를 키보드 접근성
이라 한다.
키보드 접근성을 높이기 위해서는 마우스 이벤트를 등록할 때 될 수 있으면 <a> 또는 <input> 태그에 등록하고,
키보드가 없을 경우를 고려하여 마우스 이벤트에 대응할 수 있는 키보드 이벤트까지 등록해야 한다.
focus() / blur() / focusin() / focusout() 이벤트 메소드
focus() 메소드 : 대상 요소로 포커스가 이동하면 이벤트를 발생시킨다.
blur() 메소드 : 포커스가 대상 요소에서 다른 요소로 이동하면 이벤트를 발생시킨다.
focusin() 메소드 : 대상 요소의 하위 요소 중 입력 요소로 포커스가 이동하면 이벤트를 발생시킨다.
focusout() 메소드 : 대상 요소의 하위 요소 중 입력 요소에서 외부 요소로 이동하면 이벤트를 발생시킨다.
다음은 focus()와 blur() 메소드의 기본형이다
1. focus 이벤트 등록
$("이벤트 대상 선택").focus(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("focus", function(){자바스크립트코드;});
2. focus 이벤트 강제 발생
$("이벤트 대상 선택").focus();
3. blur 이벤트 등록
$("이벤트 대상 선택").blur(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("blur", function(){자바스크립트코드;});
4. blur 이벤트 강제 발생
$("이벤트 대상 선택").blur();
다음은 focusin()과 focusout() 메소드의 기본형이다.
1. focusin 이벤트 등록
$("이벤트 대상 선택").focusin(funcion(){자바스크립트코드;});
$("이벤트 대상 선택").on("focusin", function(){자바스크립트코드;});
2. focusin 이벤트 강제 등록
$("이벤트 대상 선택").focusin();
3. focusout 이벤트 등록
$("이벤트 대상 선택").focusout(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("focusout", function(){자바스크립트코드;});
4. focusout 이벤트 강제 등록
$("이벤트 대상 선택").focusout();
다음은 focus(), blur(), focusin(), focusout()을 이용한 예제이다.
선택한 폼 요소의 값(value)을 새 값으로 바꾼다. 그리고 포커스가 다른 요소로 이동하면 이벤트를 발생시킨다.
기본형은 다음과 같다.
1. focus 이벤트 등록
$("이벤트 대상 선택").change(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("change", function(){자바스크립트코드;});
2. focus 이벤트 강제 발생
$("이벤트 대상 선택").change();
keydown()과 keypress() 이벤트 메소드는 선택한 요소에서 키보드 자판을 눌렀을 때 이벤트를 발생시키거나
해당 이벤트를 강제로 발생시킨다
두 이벤트의 차이점을 보면 keydown()은 모든키(한글 키 제외)에 대해서 이벤트를 발생시키지만 keypress()는
기능키(F1~F12, Alt, Ctrl, Shift 등)에 대해서는 이벤트를 발생시키지 않는다.
또한 키보드 이벤트 핸들러에서 생성된 이벤트 객체의 속성을 이용하면 고유 키의 코드값을 구할 수 있다.
그리고 이를 사용하여 단축키 기능을 만들수도 있다.
keyup() 메소드는 자판의 키를 눌렀다 키에서 손을 떼면 이벤트를 발생시키거나 keyup 이벤트를 강제로 발생시킨다.
다음은 keydown(), keyup(), keypress() 메소드의 기본형이다.
1. keydown 이벤트 등록
$("이벤트 대상 선택").keydown(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("keydown", function(){자바스크립트코드;});
2. keydown 이벤트 강제 발생
$("이벤트 대상 선택").keydown();
3. keyup 이벤트 등록
$("이벤트 대상 선택").keyup(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("keyup", function(){자바스크립트코드;});
4. keydown 이벤트 강제 발생
$("이벤트 대상 선택").keyup();
5. keypress 이벤트 등록
$("이벤트 대상 선택").keypress(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("keypress", function(){자바스크립트코드;});
6. keydown 이벤트 강제 발생
$("이벤트 대상 선택").keypress();
다음은 HTML 문서(document)에 keydown 이벤트를 등록하는 예제이다.
<script>
$(function(){
$(document).on("keydown", keyEventFnc);
fonction keyEventFnc(e){
var direct="";
switch(e.keyCode){
case 37:
direct="LEFT";
break;
case 38:
direct="TOP";
break;
case 39:
direct="RIGHT";
break;
case 40:
direct="BOTTOM";
break;
}
if(direct) $("#user_id").val(direct);
}
});
</script>
</head>
<body>
<p><input type="text" name="user_id" id="user_id"></p>
</body>
이벤트가 발생한 요소 추적하기
$(this)선택자
이벤트 핸들러에서 $(this)를 사용하면 이벤트가 발생한 요소를 선택하여 이벤트가 발생한 요소를 추적할 수 있다.
<script>
$(function(){
$(document).ready(function(){
var h1=$(".img1").height();
console.log("ready:", h1); //ready : 0
});
//HTML에 전체 요소가 로딩되면 이벤트 핸들러가 실행
$(window).load(function(){
var h2=$(".img1").height();
console.log("load:", h2); //load : 300
});
//외부 소스(이미지)가 완전히 로딩되면 이벤트 핸들러가 실행되며
//이미지 높이값(300)이 출력된다.
});
</script>
</head>
<body>
<p>
<img src="http://place-hold.it/300X300" class="img1">
</p>
</body>
마우스 이벤트
사용자가 사이트에서 마우스를 이용해서 취하는 모든 행위를 말한다.
가령 사용자가 지정한 요소에 마우스 포인터를 올리거나 클릭하는 등의 행위를 말한다.
click()/dblclick() 이벤트 메소드
click()메소드는 서낵한 요소를 클릭했을 때 이벤트를 발생시키거나 선택한 요소에 강제로 클릭 이벤트를 발생시킬때
사용한다. click()이벤트 메소드를 등록하는 기본형은 다음과 같다.
1. click이벤트 등록
$("이벤트 대상 선택").click(function(){자바스크립트코드});
$("이벤트 대상 선택").on("click", function(){자바스크립트코드});
2. click 이벤트 강제 발생
$("이벤트 대상 선택").click();
dblclick() 이벤트 메소드는 선택한 요소를 연속해서 두번 클릭했을 때 이벤트를 발생시키거나 선택한 요소에
강제로 더블클릭 이벤트를 발생시킨다.
기본형은 다음과 같다.
1. dblclick 이벤트 등록
$("이벤트 대상 선택").dblclick(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("dblclick", function(){자바스크립트 코드;});
2. dblclick 이벤트 강제 발생
$("이벤트 대상 선택").dblclick();
<a>, <form>태그에 클릭 이벤트 적용시 기본 이벤트 차단하기
<a>요소에 click이나 dblclick을 등록하면 클릭할 때마다 <a>에 링크된 주소로 이동하는 문제가 발생한다.
이 문제를 해결하려면 <a> 요소의 기본 이벤트를 차단해야 한다. <form>요소의 제출버튼(submit)도
action에 등록된 주소로 이동시키는 문제가 발생한다.
우리가 등록한 이벤트를 정상적으로 수행하려면 이러한 기본 이벤트를 차단해야 한다.
다음은 <a>, <form> 태그에 이벤트를 등록하기 위해 기본 이벤트를 차단하는 기본형이다.
1. return false를 이용한 차단 방식
$("a 또는 form").이벤트 메소드(function(){
자바스크립트코드;
return false;
});
2. preventDefault()메소드를 이용한 차단 방식
$("a 또는 form").이벤트 메소드(function(){
e.preventDefault(); //prevent는 막다, default는 기본이벤트를 의미한다.
자바스크립트코드;
});
다음은 <a>와 <button>에 각각 click, dblclick 이벤트를 등록하는 예제이다.
mouseover()이벤트 메소드는 선택한 요소에 마우스 포인터를 올릴 때마다 이벤트를 발생시키거나 선택한 요소에
mouseover 이벤트를 강제로 발생시킨다.
mouseout() 이벤트 메소드는 선택한 요소에서 마우스 포인터가 벗어날 때마다 이벤트를 발생시키거나 선택한 요소에
mouseout이벤트를 강제로 발생시킨다.
그리고 hover() 이벤트 메소드는 선택한 요소에 마우스 포인터가 올라갈 때와 선택한 요소에서 벗어날 때 각각
이벤트를 발생시키며, 이때 각각 다른 이벤트 핸들러를 실행 시킨다.
각 이벤트 메소드의 기본형은 다음과 같다.
1. mouseover 이벤트 등록
$("이벤트 대상 선택").mouseover(function(){자바스크립트코드});
$("이벤트 대상 선택").on("mouseover", function(){자바스크립트코드;});
2. mouseover 이벤트 강제 발생
$("이벤트 대상 선택").mouseover();
1. mouseout 이벤트 등록
$("이벤트 대상 선택").mouseout(function(){자바스크립트코드});
$("이벤트 대상 선택").on("mouseout", function(){자바스크립트코드;});
2. mouseout 이벤트 강제 발생
$("이벤트 대상 선택").mouseout();
hover 이벤트 등록
$("이벤트 대상 선택").hover(
function(){마우스 오버 시 실행될 코드},
function(){마우스 아웃 시 실행될 코드}
);
다음은 버튼 요소에 mouseover, mouseout, hover 이벤트 메소드를 적용한 예제이다.
mouseenter() 메소드는 대상 요소의 경계 범위에 마우스 포인터가 들어오면 이벤트를 발생 시키고,
mouseleave() 이벤트 메소드는 대상 요소의 경계 범위에서 마우스 포인터가 완전히 벗어나면 이벤트를 발생시킨다.
mouseover와 mouseenter의 차이점을 보면,
mouseover는 대상 요소에 마우스 포인터가 올라가면 발생하는 이벤트이고, mouseenter는 이벤트 대상이 포함된
범위에 마우스 포인터가 들어오면 발생하는 이벤트이다.
mouseover는 한 대상. mouseenter는 구역 혹은 영역이라고 생각하면 된다.
mouseout과 mouseleave도 역시 대상요소인지 범위인지에 따라 다른것이다.
다음은 mouseenter()와 mouseleave() 메소드의 기본형이다.
1. mouseenter 이벤트 등록
$("이벤트 대상 선택").mouseenter(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("mouseenter", function(){자바스크립트코드;});
2. mouseenter 이벤트 강제 발생
$("이벤트 대상 선택").mouseenter();
1. mouseleave 이벤트 등록
$("이벤트 대상 선택").mouseleave(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("mouseleave", function(){자바스크립트코드;});
2. mouseleave 이벤트 강제 발생
$("이벤트 대상 선택").mouseleave();
1. mousemove 이벤트 등록
$("이벤트 대상 선택").mousemove(function(){자바스크립트코드;});
$("이벤트 대상 선택").on("mousemove", function(){자바스크립트코드;});
2. mousemove 이벤트 강제 발생
$("이벤트 대상 선택").mousemove();
다음은 mousemove 이벤트가 발생할 때마다 마우스 포인터의 좌표값을 각각 <span>에 출력하는 예제이다.
<script>
$(function(){
var result_1 = $("#sec_1").html();
console.log(result_1);
//id 값이 "sec_1"인 하위 요소를 문자열로 가져와
//result_1에 저장한다.
$("#sec_1 p").html("<a href=\"#\">Text1</a>");
//id값이 "sec_1"인 요소의 하위 요소 중
//<p>요소의 하위 요소를 새 요소로 바꾼다.
var result_2 = $("#sec_2").text();
console.log(result_2);
//id값이 "sec_2"인 요소의 텍스트를 result_2에 저장
$("#sec_2 h2").text("text()");
//id값이 "sec_2"인 요소의 하위 요소 중 <h2> 요소의 하위 요소를
//모두 제거. 그 다음 새로운 텍스트를 생성.
});
</script>
</head>
<body>
<h1>
<strong>객체 조작 및 생성</strong>
</h1>
<section id="sec_1">
<h2>
<em>html()</em>
</h2>
<p>내용1</p>
</section>
<section id="sec_2">
<h2>
<em>텍스트()</em>
</h2>
<p>내용2</p>
</section>
</body>
attr()/removeAttr()메소드
attr()메소드는 선택한 요소에 새 속성을 생성하거나 기존의 속성을 변경할 때 또는 요소의 속성값을 불러올 때
다음은 appendTo()메소드와 prepend()메소드를 어떻게 사용하는지 보여주는 예제이다.
<script>
$(function(){
$("<li>appendTo</li>").appendTo("#listZone");
//선택한 요소의 맨 뒤에 새 요소를 생성
$("#listZone").prepend("<li>prepend</li>");
//선택한 요소의 맨 앞에 새 요소를 생성
});
</script>
</head>
<body>
<ul id="listZone">
<li>리스트</li>
</ul>
</body>
clone()/empty()/remove() 메소드
clone()메소드는 선택한 요소를 복제한다.
empty()메소드는 선택한 요소의 모든 하위 요소를 삭제하고, remove()메소드는 선택한 요소를 삭제한다.
1은 선택한 요소를 복제한다. true면 이벤트까지 복제하고, false면 요소만 복제한다. 기본값은 false이다.
2는 선택한 요소의 모든 하위 요소를 삭제한다.
3은 선택한 요소를 삭제하낟.
다음은 clone(), empty() 함수, remove()메소드를 이용한 예제이다.
<script>
$(function(){
var copyObj=$(".box1").children().clone();
//class 값이 "box1"인 요소의 모든 자식 요소를 복제.
//그 다음 copyObj에 참조시킨다.
$(".box3").empty();
//class값이 "box3"인 요소의 모든 하위 요소를 삭제.
$(".box3").append(copyObj);
//copyObj에 저장된 요소를 class값이 "box3"인 요소
//맨 뒤에 추가.
});
</script>
</head>
<body>
<div class="box1">
<p>내용1</p>
<p>내용2</p>
</div>
<div class="box2">
<p>내용3</p>
<p>내용4</p>
</div>
<div class="box3">
<p>내용5</p>
<p>내용6</p>
</div>
</body>
replaceAll()/replaceWith()메소드
replaceAll()메소드와 replaceWith()메소드는 선택한 요소를 새 요소로 바꿀 때 사용한다.