• jQuery는 태그의 css를 제어할 수 있는 함수를 제공
• addClass : css class를 설정
• removeClass : css class를 제거
• toggleClass : 지정된 클래스가 없으면 설정하고 있으면 제거
<script>
function addClass(){
$("#a1").addClass("active");
}
function removeClass(){
$("#a1").removeClass("active");
}
function toggleClass(){
$("#a1").toggleClass("active");
}
</script>
<style>
.active{
background-color : black;
color : white;
}
</style>

• css : css 속성을 가져오거나 설정
<script>
function getCss(){
// 배경색 값 가져오기
var v1 = $("#a1").css("background-color");
// 글자색 가져오기
var v2 = $("#a1").css("color");
// 불러온 값 나타내기
$("#result").append("background-color : " + v1 + "<br>");
$("#result").append("color : " + v2 + "<br>");
}
function setCss(){
$("#a1").css("background-color", "blue");
$("#a1").css("color", "yellow");
}
</script>
<style>
#a1{
background-color : black;
color : white;
}
</style>

• parent : 선택된 태그의 부모 태그를 선택
• parents : 선택된 태그의 모든 부모 태그를 선택
• parents(선택자2) : 선택된 태그의 모든 부모 태그 중 선택자2에 해당하는
태그들이 선택
• parentsUntil(선택자2) : 선택된 태그에서 선택자2 태그까지의 모든 부모태
그들이 선택
<script>
$(function(){
//a4 기준으로
$("#a4").parent().css("border-color", "red");
$("#a4").parents().css("border-width", "4px");
$("#a4").parents(".c1").css("border-style", "dashed");
$("#a4").parentsUntil(".c1").css("border-style", "dotted"); //c2
});
</script>
<style>
div{
border : 2px solid black;
padding : 10px
}
</style>
</head>
<body>
<div>div tag 1
<div class="c1">div tag 2
<div class='c2'>div tag 3
<div id="a4">div tag 4</div>
</div>
</div>
</div>
</body>

• children : 선택된 태그의 자식 태그들을 선택
• children(선택자2) : 선택된 태그의 자식 태그들 중 선택자2에 해
당하는 태그들이 선택
• find(선택자2) : 선택된 태그의 하위 태그들 중 선택자2에 해당
하는 태그들이 선택
<script>
$(function(){
//a1 기준으로
$("#a1").children().css("border-color", "red");
$("#a1").children(".c1").css("border-width", "4px");
$("#a1").find(".c3").css("border-style", "dashed");
});
</script>
<style>
div{
border : 2px solid black;
padding : 10px
}
</style>
</head>
<body>
<div id="a1">
div
<div class="c1">
div 1
<div class="c3">
div 1-2
</div>
</div>
<div class="c2">
div 2
<div>
div 2-2
</div>
</div>
</div>
</body>

• siblings : 선택된 태그와 같은 계층의 모든 태그들이 선택
• siblings(선택자2) : 선택된 태그와 같은 계층의 모든 태그 중 선택자2
에 해당하는 태그들이 선택
<script>
$(function(){
$("#a1").siblings().css("border-color", "red");
$("#a1").siblings(".c2").css("border-style", "dotted");
});
</script>
<style>
div{
border : 2px solid black;
padding : 10px;
}
</style>
</head>
<body>
<div class="c1">div 1</div>
<div class="c2">div 2</div>
<div id="a1">div 3</div>
<div class="c1">div 4</div>
<div class="c2">div 5</div>
</body>

• next : 선택된 태그 다음 태그가 선택
• nextAll : 선택된 태그의 다음 태그들이 모두 선택
• nextUntil(선택자2) : 선택된 태그 다음 태그들 중 선택자2 까지의 모
든 태그들이 선택
<script>
$(function(){
$("#a1").next().css("border-color", "red");
$("#a1").nextAll().css("border-style", "dotted");
$("#a1").nextUntil("#a2").css("border-width", "4px");
});
</script>
<style>
div{
border : 2px solid black;
padding : 10px;
margin-bottom : 10px;
}
</style>
</head>
<body>
<div>div 1</div>
<div id="a1">div 2</div>
<div>div 3</div>
<div>div 4</div>
<div id="a2">div 5</div>
</body>

• prev : 선택된 태그 이전 태그가 선택
• prevAll : 선택된 태그 이전의 모든 태그가 선택
• prevUntil(선택자2) : 선택된 태그의 이전 태그들 중 선택자2 까지의 모든 태그들이 선택
<script>
$(function(){
$("#a1").prev().css("border-color", "red");
$("#a1").prevAll().css("border-style", "dotted");
$("#a1").prevUntil("#a2").css("border-width", "4px");
});
</script>
<style>
div{
border : 2px solid black;
padding : 10px;
margin-bottom : 10px;
}
</style>
</head>
<body>
<div id="a2">div 1</div>
<div>div 2</div>
<div>div 3</div>
<div id="a1">div 4</div>
<div>div 5</div>
</body>

• hide : 선택된 태그를 사라지게 함
• show : 선택된 태그를 나타나게 함
• toggle : 사라지거나 나타나는 상태를 전환
<script>
function div_hide(){
$("#a1").hide();
}
function div_show(){
$("#a1").show();
}
function div_toggle(){
$("#a1").toggle();
}
</script>

• fadeIn : 페이드 효과를 통해 나타나게 한다.
• fadeout : 페이드 효과를 통해 사라지게 한다.
• fadeToggle : 페이드 효과를 통해 사라지거나 나타나는 상태를 전환
한다.
• fadeTo : 지정된 투명도 만큼 페이드 아웃한다. (1이 100%)
<script>
function div_fadeout(){
$("#a1").fadeOut("slow");
}
function div_fadein(){
$("#a1").fadeIn("slow");
}
function div_fadetoggle(){
$("#a1").fadeToggle("slow");
}
function div_fadeto(){
$("#a1").fadeTo("slow", 0.3);
}
</script>
<style>
#a1{
border : 1px solid black;
background-color : yellow;
width : 200px;
height : 200px;
}
</style>
</head>
<body>
<button onclick="div_fadeout()">fade out</button>
<button onclick="div_fadein()">fade in</button>
<button onclick="div_fadetoggle()">fade toggle</button>
<button onclick="div_fadeto()">fade to</button>
<div id="a1"></div>
</body>

• slideUp : 위로 슬라이드 되면서 사라진다.
• slideDown : 아래로 슬라이드 되면서 나타난다.
• slideToggle : 슬라이드 효과를 통해 사라지거나 나타나는 상태
를 전환한다.
<script>
function div_slideup(){
$("#a1").slideUp("slow");
}
function div_slidedown(){
$("#a1").slideDown("slow");
}
function div_slidetoggle(){
$("#a1").slideToggle("slow");
}
</script>
<style>
#a1{
border : 1px solid black;
background-color : yellow;
width : 200px;
height : 200px;
}
</style>
</head>
<body>
<button onclick="div_slideup()">slide up</button>
<button onclick="div_slidedown()">slide down</button>
<button onclick="div_slidetoggle()">slide toggle</button>
<div id="a1"></div>
</body>

callback 함수
• 앞서 살펴본 효과가 종료되면 자동으로 호출되는 함수를 등록할 수 있다.
<script>
function test_callback(){
$("#a1").hide("show", function(){
alert("effect end");
});
}
</script>
<style>
#a1{
border : 1px solid black;
background-color : yellow;
width : 200px;
height : 200px;
}
</style>
</head>
<body>
<button onclick="test_callback()">callback 함수 테스트</button>
<div id="a1"></div>
</body>

• Animate : 지정된 css 속성을 애니메이션 효과와 함께 지정
• Animate({}) : 지정된 객체의 css 속성들을 애니메이션 효과와 함께 지
정
<script>
function setSize(){
$("#a1").animate({
width : 400,
height : 400
}, "slow");
}
function setOpacity(){
$("#a1").animate({
opacity : 0
}, "slow");
}
function setPosition(){
$("#a1").animate({
left : 100,
top : 100
}, "slow");
}
function setBackgroundColor(){
$("#a1").animate({
backgroundColor : "red"
}, "slow");
}
function setTotal(){
$("#a1").animate({
width : 400,
height : 400,
opacity : 0.5,
left : 100,
top : 100,
}, "slow");
}
function setSequence(){
$("#a1").animate({
width : 400,
height : 400
}, "slow").delay(1000).animate({
left : 100,
top : 100
}, "slow").delay(1000).animate({
opacity : 0.2
}, "slow");
}
</script>
<style>
#a1{
border : 1px solid black;
background-color : yellow;
width : 200px;
height : 200px;
position : relative;
}
</style>
</head>
<body>
<button onclick="setSize()">size 설정</button>
<button onclick="setOpacity()">투명도 조절</button>
<button onclick="setPosition()">위치 이동</button>
<button onclick="setBackgroundColor()">배경색 설정</button>
<button onclick="setTotal()">종합 설정</button>
<button onclick="setSequence()">순차 설정</button>
<div id="a1"></div>
</body>

사이즈 설정

투명도 조절

위치 이동

종합 설정


• Ajax 통신은 서버와 통신시 서버로 부터 받은 응답 결과를 웹 브라우저에 반영하지 않고 JavaScript로 처리할 수 있도록 고안된 통신 방식
• 이를 이용하면 서버와의 통신은 정상적으로 이루어 지며 화면은 변경되지 않기 때문에 화면의 일부분만을 변경하는 등의 작업이 가능
• Ajax 통신은 같은 도메인으로 요청할 수 있는 파일만 요청 가능
• load : 지정된 파일을 요청하고 받은 응답 결과를 태그 내부에 삽입
• get : get 방식으로 ajax 통신
• post : post 방식으로 ajax 통신
문자열 입니다.
text 불러오기
<script>
function getText(){
$.ajax({
url : "data1.txt",
type : "post",
dataType : "text",
success : function(rec_data){
$("#result").text(rec_data);
}
});
}
</script>

<a href="http://www.google.com">google</a>
html 불러오기
<script>
function getHtml(){
$.ajax({
url : "data2.html",
type : "post",
dataType : "html",
success : function(rec_data){
$("#result").html(rec_data);
}
});
}
</script>

<?xml version="1.0" encoding="UTF-8"?>
<root>
<data>
<str1>문자열 1-1</str1>
<str2>문자열 1-2</str2>
</data>
<data>
<str1>문자열 2-1</str1>
<str2>문자열 2-2</str2>
</data>
<data>
<str1>문자열 3-1</str1>
<str2>문자열 3-2</str2>
</data>
</root>
xml 불러오기
<script>
function getXml(){
$.ajax({
url : "data3.xml",
type : "post",
dataType : "xml",
success : function(rec_data){
var data = $(rec_data).find("data");
$(data).each(function(idx, obj){
var str1 = $(obj).find("str1");
var str2 = $(obj).find("str2");
var str11 = $(str1).text();
var str22 = $(str2).text();
$("#result").append("str1 : " + str11 + "<br>");
$("#result").append("str2 : " + str22 + "<br>");
});
}
});
}
</script>

{
"data1" : 100,
"data2" : 11.11,
"data3" : "문자열"
}
json 불러오기
<script>
function getJson(){
$.ajax({
url : "data4.json",
type : "post",
dataType : "json",
success : function(rec_data){
$("#result").append("data1 : " + rec_data.data1 + "<br>");
$("#result").append("data2 : " + rec_data.data2 + "<br>");
$("#result").append("data3 : " + rec_data.data3 + "<br>");
}
});
}
</script>

짧았던 jQuery시간이 끝이 났다. 많은 양을 한꺼번에 머리 속에 집어 넣을려고 하니 상당히 어려웠다. 학습할 때는 아~ 하고 넘어가는데, 막상 자료없이 작성하려고 하면 막막해진다. 눈으로 보는 복습이 아닌 코드를 작성하는 복습방법이 필요하다.