위로
아래
직접 선택자
기본형
/* 직접 선택자 */
$("*") // 모든 요소 선택
$("#main") // id 요소 선택
$(".title") // class 요소 선택
$("h1") // 엘리멘탈 요소 선택
$("#main, .title, h1") // 여러 요소 한 번에 선택
$("h1.title") // h1 중 클래스 이름이 title인 요소 선택
$(".title + h1") // class가 title인 요소 뒤에 처음으로 나오는 h1 요소 선택
직접 선택자 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>선택자 연습</title>
<script src = "../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("*").css("border","1px solid blue");
$(".tit1").css("background-color","#ff0").css("border","2px dashed #f00");
$("#tit2").css("background-color","#ff0").css("border","2px solid #f00");
$("h3").css({"background-color":"#ff0", "border":"2px dotted #f00"});
$("h4, .tit5").css({"background-color":"#0ff","border":"1px double #00f"});
$("h5.tit5").css("color","#fff");
})
</script>
</head>
<body>
<h1 class="tit1">h1</h1>
<h2 id="tit2">h2</h2>
<h3>h3</h3>
<h4>h4</h4>
<h5 class="tit5">h5</h5>
</body>
</html>
인접 관계 선택자
기본형
/* 인접 관계 선택자 */
$("h1").parent() // h1의 부모 요소 선택
$("h1").parents() // h1의 모든 상위 요소 선택
$("h1").closest("div") // h1의 상위 요소 중 가장 가까운 div 선택
$("h1").children() // h1의 모든 자식 요소 선택
$("h1").prev() // h1의 바로 이전 요소 선택
$("h1").prevAll() // h1의 모든 이전 요소 선택
$("h1").prevUntil("div") // h1부터 div까지 모든 이전 요소 선택
$("h1").next() // h1의 다음 요소 선택
$("h1").nextAll() // h1의 모든 다음 요소 선택
$("h1").nextUntil("div") // h1부터 div까지 다음 요소 모두 선택
$(".box1").siblings() // class가 box1인 요소의 모든 형제 요소 선택
parent, children, next, prev 예시
더보기
<head>
<meta charset="UTF-8">
<title>인전 관계 선택자</title>
<script src = "../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var style_1 = {
"background-color":"#0ff",
"border":"2px solid #f00"
}
var style_2 = {
"background-color":"#ff0",
"border":"2px dashed #f00"
}
$("#list_1").parent().css({"border":"dashed 2px #f00"});
$("#wrap h1").css("border","23px dashed #f00");
$("#wrap > ul").children().css("background-color","#f00;");
$("#wrap h1").parent().prev().css(style_2);
$("#wrap .list_2").next().next().css(style_1);
})
</script>
</head>
<body>
<h1>인접 관계 선택자</h1>
<ul id="wrap">
<li class=list_2>리스트1
<ul>
<li id="list_1">리스트 1-1</li>
<li>리스트 1-2</li>
<li><h1>리스트 1-3</h1></li>
</ul>
</li>
<li>리스트2</li>
<li class="list_3">리스트3</li>
</ul>
</body>
</html>
siblings 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src = "../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var style_2 = {
"background-color":"#ff0",
"border":"2px dashed #f00"
}
$(".txt").siblings().css(style_2);
})
</script>
</head>
<body>
<div id="wrap">
<h1>인접 관계 선택자</h1>
<p>내용1</p>
<p class="txt">내용2</p>
<p>내용3</p>
<p>내용4</p>
</div>
</body>
</html>
prevUntil, nextUntil 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
const style_1 = {
"background-color":"#0ff",
"border":"2px solid #f00"
}
$(".txt3").prevUntil(".title").css(style_1);
$(".txt3").nextUntil(".txt6").css(style_1);
})
</script>
</head>
<body>
<div id="wrap">
<h1 class="title">선택자</h1>
<p>내용1</p>
<p>내용2</p>
<p class="txt3">내용3</p>
<p>내용4</p>
<p>내용5</p>
<p class="txt6">내용6</p>
</div>
</body>
</html>
parents 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".txt1").parents().css({"border":"2px dashed #00f"});
$(".txt2").parents("div").css("border","2px solid #f00");
})
</script>
</head>
<body>
<h1></h1>
<section>
<div>
<p class="txt1">내용</p>
</div>
</section>
<section>
<div>
<p class="txt2">내용</p>
</div>
</section>
</body>
</html>
위치 탐색 선택자
기본형
/* 위치 탐색 선택자 */
$("li:first") // 전체 li 중 첫 번째 요소 선택
$("li:last") // 전체 li 중 마지막 요소 선택
$("li:even") // li 중 홀수 요소 모두 선택
$("li:odd") // li 중 짝수 요소 모두 선택
$("li:first-of-type") // li 요소 무리 중 첫 번째 요소들 선택
$("li:last-of-type") // li 요소 무리 중 마지막 요소들 선택
$("li:nth-child(3)") // li 중 3번째 요소 선택
$("li:nth-child(3n)") // li 중 3의 배수번째 요소 모두 선택
$("li:only-child") // 부모 요소에게 하나뿐인 자식인 li를 선택
$("li:eq(2)") or $("li").eq(2) // li 중 인덱스 번호 2번째 요소 선택
$("li:gt(2)") // li 중 인덱스 번호가 2보다 큰 요소들 선택
$("li:lt(2)") // li 중 인덱스 번호가 2보다 작은 요소들 선택
$("li").slice(2,4) // li 중 인덱스 번호 2초과 ~ 4미만의 요소를 선택
first, last 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#menu li:first").css({"background-color":"#ff0"});
$("#menu li:last").css("background-color","#0ff");
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul id="menu">
<li>내용1</li>
<li>내용2</li>
<li>내용3</li>
<li>내용4</li>
</ul>
</body>
</html>
even, odd 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#menu li:even") <!-- 홀수 -->
.css("background-color","#ff0");
$("#menu li:odd") <!-- 짝수 -->
.css({"background-color":"#0ff"});
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul id="menu">
<li>내용1</li>
<li>내용2</li>
<li>내용3</li>
<li>내용4</li>
</ul>
</body>
</html>
eq, it, gt 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#menu li").eq(2) <!-- 인덱스 번호 2, 즉 3번째 li -->
.css("background-color","#ff0");
$("#menu li:lt(2)") <!-- 인덱스 번호 2 이전 li들-->
.css("background-color","#0ff");
$("#menu li:gt(2)") <!-- 인덱스 번호 2 이후 li들 -->
.css("background-color","#f0f");
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul id="menu">
<li>내용1</li>
<li>내용2</li>
<li>내용3</li>
<li>내용4</li>
<li>내용5</li>
</ul>
</body>
</html>
first-of-type, last-if-type 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("li:first-of-type").css({"background-color":"#ff0"});
$("li:last-of-type").css("background-color","#0ff");
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul>
<li>내용 1-1</li>
<li>내용 1-2</li>
<li>내용 1-3</li>
</ul>
<ul>
<li>내용 2-1</li>
<li>내용 2-2</li>
<li>내용 2-3</li>
</ul>
</body>
</html>
nth-child 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#menu1 li:nth-child(1)")
.css({"background-color":"#ff0"});
$("li:nth-child(2n)")
.css({"border":"2px dashed #f00"});
$("#menu2 li:nth-child(2)")
.css({"background-color":"#0ff"});
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul id="menu1">
<li>내용1-1</li>
<li>내용1-2</li>
<li>내용1-3</li>
<li>내용1-4</li>
</ul>
<ul id="menu2">
<li>내용2-1</li>
<li>내용2-2</li>
<li>내용2-3</li>
</ul>
</body>
</html>
only-child, slice 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#menu1 li").slice(1,3).css({"background-color":"#ff0"});
$("li:only-child").css({"background-color":"#0ff"});
})
</script>
</head>
<body>
<h1>탐색 선택자</h1>
<ul id="menu1">
<li>내용1-1</li>
<li>내용1-2</li>
<li>내용1-3</li>
<li>내용1-4</li>
</ul>
<ul id="menu2">
<li>내용2-1</li>
</ul>
</body>
</html>
속성 - 값 탐색 선택자
기본형
일반 태그
$("요소 선택[속성]") // 속성 포함된 요소 선택
$("요소 선택[속성^= 값]") // 속성 값이 명시한 값으로 시작하는 요소 선택
$("요소 선택[속성$= 값]") // 속성 값이 명시한 값으로 끝나는 요소 선택
$("요소 선택[속성*= 값]") // 속성 값이 명시한 값을 포함하는 요소 선택
input 태그
$(":type 속성값") // input 요소 중 type의 속성이 명시한 값과 같은 요소 선택
예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#wrap a[target]").css("color","#f00"); // target 속성을 포함하면 빨간 글씨
$("#wrap a[href^=https]").css({"color":"#0f0"}); // href 속성이 https로 시작하면 초록 글씨
$("#wrap a[href$=net]").css({"color":"#00f"}); // href 속성이 net으로 끝나면 파란 글씨
$("#wrap a[href*=google]").css({"color":"#000"}); // href 속성이 google을 포함하면 검은 글씨
$("#member_f :text").css({"background-color":"#ff0"}); // input의 타입 속성이 text이면 노란 배경
$("#member_f :password").css({"background-color":"#0ff"}); // input의 타입 속성이 password면 시안 배경
})
</script>
</head>
<body>
<div id="wrap">
<p><a href="http://easyspub.co.kr" target="_blank">EasysPub</a></p>
<p><a href="https://naver.com">Naver</a></p>
<p><a href="http://google.com">Google</a></p>
<p><a href="http://daum.net">Daum</a></p>
</div>
<form action="#" method="get" id="member_f">
<p>
<label for="user_id">아이디</label>
<input type="text" name="user_id" id="user_id">
</p>
<p>
<label for="user_pw">비밀번호</label>
<input type="password" name="user_pw" id="user_pw">
</p>
</form>
</body>
</html>
속성 상태 탐색 선택자
기본형
$("요소 선택[visible | hidden]") // 선택한 요소 중 숨겨진 상태 또는 보이는 상태의 요소 선택
$("요소:selected") // 선택 상자 중 현재 선택된 옵션 요소 선택
$("요소:checked") // 체크박스나 라디오 중 체크된 요소만 선택
예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
const style_1 = {"display":"block", "background":"#ff0"};
$("#wrap p:hidden").css(style_1);
const z1 = $("#zone1 :selected").val();
console.log(z1);
const z2 = $("#zone2 :checked").val();
console.log(z2);
const z3 = $("#zone3 :checked").val();
console.log(z3);
})
</script>
</head>
<body>
<div id="wrap">
<p>내용1</p>
<p style="display: none">내용2</p>
<p>내용3</p>
</div>
<form action="#">
<p id="zone1">
<select name="course" id="course">
<option value="opt1">옵션1</option>
<option value="opt2" selected>옵션2</option>
<option value="opt3">옵션3</option>
</select>
</p>
<p id="zone2">
<input type="checkbox" name="hobby1" value="독서"> 독서
<input type="checkbox" name="hobby2" value="자전거"> 자전거
<input type="checkbox" name="hobby3" value="등산" checked> 등산
</p>
<p id="zone3">
<input type="radio" name="gender" value="male"> 남성
<input type="radio" name="gender" value="female" checked> 여성
</p>
</form>
</body>
</html>
콘텐츠 탐색 선택자
기본형
$("li:contains('내용')") // li 중 '내용' 텍스트를 포함하는 요소 선택
$("div").contents() // div의 가장 가까운 하위 요소 선택
$("li").has("span") or $("li:has('span')") // li 중 span을 포함하는 요소 선택
$("li").not(":first") or $("li:not(:first)") // li 중 첫 번째 요소만 제외하고 선택
$("li").filter(".list_1") // li 중 class이름이 list_1인 요소 선택
$("li").find("span") // li 의 하위요소 중 span만 선택
$("span").closest("div") // span을 감싸는 상위 요소 중 가장 가까운 div 선택
$("li").children("a").end() // 필터링이 실행되기 이전의 요소인 li 선택
contains, contents, has 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
$("#inner_1 p:contains(내용1)").css({"background-color":"#ff0"});
$("#inner_1 p:has(strong)").css({"background-color":"#0ff"});
$("#outer_wrap").contents().css({"border":"1px dashed #00f"});
$("#inner_2 p").not(":first").css({"background-color":"#0f0"});
$("#inner_2 p").eq(2).end().css({"color":"#f00"});
})
</script>
</head>
<body>
<div id="outer_wrap">
<h1>콘텐츠 탐색 선택자</h1>
<section id="inner_1">
<h1>contains(), contents(), has()</h1>
<p><span>내용1</span></p>
<p><strong>내용2</strong></p>
<p><span>내용3</span></p>
</section>
<section id="inner_2">
<h1>not(), end()</h1>
<p>내용4</p>
<p>내용5</p>
<p>내용6</p>
</section>
</div>
</body>
</html>
find, filter 예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#inner_1").find(".txt1").css({"background-color":"#ff0"});
$("#inner_1 p").filter(".txt2").css({"background-color":"#0ff"});
$("#inner_2 p").filter(function(idx,obj){
console.log(idx);
return idx % 2==0
}).css("background-color","#0f0");
})
</script>
</head>
<body>
<div id="outer_erap">
<h1>콘텐츠 탐색 선택자</h1>
<section id="inner_1">
<h2>find(), filter()</h2>
<p class="txt1">내용1</p>
<p class="txt2">내용2</p>
</section>
<section id="inner_2">
<h2>filter(function)</h2>
<p>index 0</p>
<p>index 1</p>
<p>index 2</p>
<p>index 3</p>
</section>
</div>
</body>
</html>
그 외 탐색자 메서드
기본형
$(".ch").is(":checked") // 클래스 이름이 ch인 요소가 선택되어 있으면 true를 반환. 아니면 false를 반환.
예시
더보기
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../js/jquery-3.7.0.min.js"></script>
<script type="text/javascript">
$(function(){
const result1 = $("#inner_1").eq(0).is(":visible");
console.log(result1); // 결과 true
const result2 = $("#inner_1").eq(1).is(":visible");
console.log(result2); // 결과 false
const result3 = $("#chk1").is(":checked");
console.log(result3); // 결과 true
const result4 = $("#chk2").is(":checked");
console.log(result4); // 결과 false
})
</script>
</head>
<body>
<div id="outer_wrap">
<h1>is()</h1>
<section id="inner_1">
<h2>문단 태그 영역</h2>
<p>내용1</p>
<p style="display:none;">내용2</p>
</section>
<section id="inner_2">
<h2>폼 태드 영역</h2>
<p>
<input type="checkbox" name="chk1" id="chk1" checked>
<label for ="chk1">체크1</label><input type="checkbox" name="chk2" id="chk2">
</p>
</section>
</div>
</body>
</html>