jQuery 클래스 관련 메서드
jQuery 클래스 관련 메서드에 대해 알아보는 시간을 가지도록 하겠습니다.
클래스 관련 메서드에는 addClass(), removeClass(), toggleClass(), hasClass()가 있습니다.
01. addClass() 메서드
요소에 class 속성을 추가합니다.
실행 분류 | 형식 |
---|---|
추가 | $("div").addClass("클래스명"); |
콜백 함수 | $("div").addClass(function(index, className) { // index는 각 div 요소의 index 0, 1, 2 // className은 각 div의 class 속성 return class 속성 // 각 div에 class 속성을 추가 합니다. }); … <div>내용1</div> <div>내용2</div> <div>내용3</div> |
01-1. 예제
{
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>addClass() 메서드</title>
<script src="jquery-3.3.1.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
}
#m2 {
text-align: center;
}
.box {
border-bottom: 2px solid #ccc;
text-align: center;
padding: 20px;
margin-bottom: 10px;
}
.circle0,
.circle1,
.circle2 {
width: 200px;
height: 200px;
border-radius: 200px;
border: 4px solid #ff6600;
line-height: 200px;
display: inline-block;
}
</style>
<script>
$(document).ready(function() {
$("m1 > div").addClass("box");
$("m2 > div").addClass(function(index){
return "circle" + index;
});
});
</script>
</head>
<body>
<div id="m1">
<div>jQuery</div>
</div>
<div id="m2">
<div>html</div>
<div>css</div>
<div>javascript</div>
</div>
</body>
</html>
}
01-2. 결과물
02. removeClass() 메서드
요소에서 class 속성을 제거합니다.
실행 분류 | 형식 |
---|---|
제거 | $("div").removeClass("클래스명"); |
콜백 함수 | $("div").removeClass(function(index, className) { // index는 각 div 요소의 index 0, 1, 2 // className은 각 div의 class 속성 m1, m2, m3 return class 속성 // 각 div에 class 속성을 제거 합니다. }); … <div class="m1">내용1</div> <div class="m2">내용2</div> <div class="m3">내용3</div> |
02-1. 예제
{
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>removeClass() 메서드</title>
<script src="jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
$("#m1 > div").removeClass("con");
$("#m2 > div").removeClass(function() {
return "bg";
});
});
</script>
</head>
<body>
<div id="m1">
<div class="con">콘텐츠</div>
</div>
<div id="m2">
<div class="c1 bg">내용1</div>
<div class="c2 bg">내용2</div>
<div class="c3 bg">내용3</div>
</div>
</body>
</html>
}
02-2. 결과물
03. toggleClass() 메서드
요소에 class 속성이 없으면 addClass ()가 적용되고 class 속성이 있으면 removeClass()가 적용됩니다.
실행 분류 | 형식 |
---|---|
추가, 제거 | $("div").toggleClass("클래스명"); |
toggleClass() 메서드와 removeClass() 메서드를 이용하여 어코디언 메뉴를 실습해 보도록 하겠습니다.
03-1. 예제
{
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>toggleClass() 메서드</title>
<script src="jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
$("#m_menu a.m").click(function() {
$(this).next().addBack().toggleClass("on").end().find(".m, ul").
removeClass("on").end().parent().siblings().find(".m, ul").removeClass("on");
return false;
});
});
</script>
</head>
<body>
</body>
</html>
}
예제에서 $(this).next().addBack.toggleClass("on").end().find(".m, ul").
removeClass("on").end().parent().siblings().find(".m, ul").removeClass("on")은 다음과 같이 선택됩니다.
서브 메뉴(ul 요소가 존재하는 a 요소(.m)를 click 하면,
$(this).toggleClass("on") // 자신 요소(.m)의 폰트 컬러를 주황색, 회색으로 toggle 시킵니다.
$(this).next().toggleClass("on") // 자신의 서브 메뉴를 show, hide로 toggle 시킵니다.
$(this).next().find(".m, ul").removeClass("on") // 자신의 하위 메뉴들과 하위 서브 메뉴들을 초기화 시킵니다.
$(this).next().siblings().find(".m, ul").removeClass("on") // 다른 메뉴들을 초기화 시킵니다.
04. hasClass() 메서드
if 문의 조건식으로 사용됩니다. 선택한 요소 클래스가 있으면 true, 없으면 false를 반환합니다.
{
if($("#box").hasClass("m")){
console.log("클래스 있음") // 클래스 있음
} else {
console.log("클래스 없음");
}
...
<div id="#box" class="m">내용</div>
}
'jQuery' 카테고리의 다른 글
jQuery 스타일 메서드 (10) | 2022.09.03 |
---|---|
jQuery 속성 메서드 (2) | 2022.09.03 |
탐색 선택자 (4) | 2022.08.30 |
필터 선택자 (4) | 2022.08.30 |
속성 선택자 (4) | 2022.08.30 |
댓글