| 종류 | 선택자 | jQuery | Javascript | 설명 |
|---|---|---|---|---|
| 기본 선택자 | 태그 선택자 | $("li") | querySelector("li"), querySelectorAll("li") | 기본 태그를 선택합니다. |
| 클래스 선택자 | $(".class") | querySelector(".class") | 클래스를 선택합니다. | |
| 아이디 선택자 | $("#id") | getElementById("id") | 아이디를 선택합니다. | |
| 그룹 선택자 | $("#id, .class") | - | 여러개를 선택합니다. | |
| 전체 선택자 | $("*") | - | 전체를 선택합니다. | |
| 계층 선택자 | 하위 선택자 | $("div p") | querySelector("div p") | div 태그 모든 자식 중 p 태그를 모두 선택합니다. |
| 자식 선택자 | $("div > p") | - | div 태그 모든 자식 중 첫 번째 자식 p 태그만 선택합니다. | |
| 형제 선택자 | $("div + p") | - | div 태그의 인접한 형제 p 태그 중 첫 번째 태그만 선택합니다. | |
| 형제들 선택자 | $("div ~ p") | - | div 태그의 인접한 형제 p 태그 중 모든 형제 태그를 선택합니다. | |
| 속성 선택자 | [name|="value"] | $("li a[href|='web']") | - | 속성 중에 'web'과 같은 속성 값을 선택합니다. |
| [name*="value"] | $("li a[href*='web']") | - | 속성 중에 'web'이 포함되어 있는 요소를 선택합니다. | |
| [name~="value"] | $("li a[href~='web']") | - | 속성 중에 'web'으로 시작하는 요소를 선택합니다. | |
| [name$="value"] | $("li a[href$='web']") | - | 속성 중에 'web'으로 끝나는 요소를 선택합니다. | |
| [name="value"] | $("li a[href='web']") | - | 속성 중에 'web'과 일치하는 요소를 선택합니다. | |
| [name!="value"] | $("li a[href!='web']") | - | 속성 중에 'web'과 일치하지 않는 요소를 선택합니다. | |
| [name^="value"] | $("li a[href^='web']") | - | 속성 중에 'web'으로 시작하는 요소를 선택합니다. | |
| [name] | $("li a[href]") | - | 속성 중에 일치하는 속성 요소를 선택합니다. | |
| [name|="value"][name|="value"] | $("li a[href][class]]") | - | 속성 중에 'href' 속성과 'class' 속성이 모두 있는 요소를 선택합니다. | |
| 기본 필터 선택자 | :animated | $("div:animated") | - | 선택된 요소에서 애니메이션 요소를 선택합니다. |
| :eq() ❤️ | $("li:eq(2)") | - | 선택된 요소에서 인덱스 번호를 통해 요소를 선택합니다. | |
| :gt() | $("li:gt(2)") | - | 선택된 요소에서 인덱스 번호보다 큰 요소를 선택합니다. | |
| :lt() | $("li:gt(2)") | - | 선택된 요소에서 인덱스 번호보다 작은 요소를 선택합니다. | |
| :header | $("div:header") | - | 선택된 요소에서 제목요소(h1~h6)를 선택합니다. | |
| :first | $("div:first") | - | 선택된 요소에서 첫 번째 요소를 선택합니다. | |
| :last | $("div:last") | - | 선택된 요소에서 마지막 번째 요소를 선택합니다. | |
| :odd | $("li:odd") | - | 선택된 요소에서 홀수 번째 요소를 선택합니다. | |
| :even | $("li:even") | - | 선택된 요소에서 짝수 번째 요소를 선택합니다. | |
| :not() | $("li:not(eq(3))") | - | 선택된 요소에서 현재 선택한 요소의 반대 요소를 선택합니다. | |
| :root | $(":root") | - | 문서의 가장 기본 루트 요소를 선택합니다. | |
| :lang() | $("div:lang(kr)") | - | 선택된 요소 중에서 언어 속성 요소를 선택합니다. | |
| :target | $("div:target") | - | 선택된 요소 중에서 타겟 요소를 선택합니다. | |
| 내용 필터 선택자 | :contains() | $("div:contains('webs')") | - | 선택된 요소에서 일치하는 문자열 요소를 선택합니다. |
| :empty | $("div:empty") | - | 선택된 요소에서 텍스트가 없는 요소를 선택합니다. | |
| :has() ❤️ | $("div:has(p)") | - | 선택된 요소에서 일치하는 요소를 선택합니다. | |
| :parent | $("div:parent") | - | 선택된 요소에서 텍스트가 있는 요소를 선택합니다. | |
| 보임 필터 선택자 | :hidden | $("div:hidden") | - | 선택된 요소에서 보이지 않는 요소를 선택합니다. |
| :visible | $("div:visible") | - | 선택된 요소에서 보이는 요소를 선택합니다. | |
| 자식요소 필터 선택자 | :first-child | $("div:first-child") | - | 선택된 요소에서 첫번째 자식 요소를 선택합니다. |
| :first-of-type | $("div:first-of-type") | - | 선택된 요소와 같은 타입의 첫번째 자식 요소를 선택합니다. | |
| :last-child | $("div:last-child") | - | 선택된 요소에서 마지막 자식 요소를 선택합니다. | |
| :last-of-type | $("div:last-of-type") | - | 선택된 요소와 같은 타입의 마지막 자식 요소를 선택합니다. | |
| :nth-child() ❤️ | $("div:nth-child(2)") | - | 선택된 요소에서 인덱스 번호 요소를 선택합니다. | |
| :nth-last-child() | $("div:nth-last-child(2)") | - | 선택된 요소에서 마지막 인덱스 번호 요소를 선택합니다. | |
| :nth-of-type() | $("div:nth-of-type(2)") | - | 선택된 요소에서 유형 인덱스 번호 요소를 선택합니다. | |
| :nth-last-of-type() | $("div:nth-last-of-type(2)") | - | 선택된 요소에서 마지막 유형 인덱스 번호 요소를 선택합니다. | |
| :only-child | $(":only-child") | - | 선택된 요소에서 유형이 하나인 요소를 선택합니다. | |
| :only-of-type() | $("div:only-of-type()") | - | 선택된 요소에서 유형이 오직 하나인 요소를 선택합니다. | |
| 폼 선택자 | :button | $(":button") | - | 선택된 요소에서 버튼 요소를 선택합니다. |
| :checkbox | $(":checkbox") | - | 선택된 요소에서 체크 박스 요소를 선택합니다. | |
| :checked | $(":checked") | - | 선택된 요소에서 checked된 박스 요소를 선택합니다. | |
| :disabled | $(":disabled") | - | 선택된 요소에서 disabled된 박스 요소를 선택합니다. | |
| :enabled | $(":enabled") | - | 선택된 요소에서 enabled된 박스 요소를 선택합니다. | |
| :focus | $(":focus") | - | 선택된 요소에서 focus된 요소를 선택합니다. | |
| :file | $(":file") | - | 선택된 요소에서 파일 업로드 요소를 선택합니다. | |
| :image | $(":image") | - | 선택된 요소에서 이미지 입력 양식 요소를 선택합니다. | |
| :input | $(":input") | - | 선택된 요소에서 입력 양식 요소를 선택합니다. | |
| :password | $(":password") | - | 선택된 요소에서 패스워드 양식 요소를 선택합니다. | |
| :radio | $(":radio") | - | 선택된 요소에서 라디오 박스 요소를 선택합니다. | |
| :reset | $(":reset") | - | 선택된 요소에서 리셋 버튼 요소를 선택합니다. | |
| :selected | $(":selected") | - | 선택된 요소에서 선택된 요소를 선택합니다. | |
| :submit | $(":submit") | - | 선택된 요소에서 전송 버튼 요소를 선택합니다. | |
| :text | $(":text") | - | 선택된 요소에서 텍스트 요소를 선택합니다. |
01. 기본 선택자
- $("li")
- $(".class")
- $("#id")
- $(".class, #id")
- $("*")
리셋
클릭하면 클래스(.class)를 선택합니다.
클릭하면 아이디(#id)를 선택합니다.
클릭하면 기본 태그를 선택합니다.
클릭하면 여러가지(#id, .class) 태그를 선택합니다.
클릭하면 전채 태그(*)를 선택합니다.
{
$(".reset1").click(function(){
$(".view1 *").removeClass("blue");
});
$(".btn1-1").click(function(){
$(".view1 .class").addClass("blue");
});
$(".btn1-2").click(function(){
$(".view1 #id").addClass("blue");
});
$(".btn1-3").click(function(){
$(".view1 li").addClass("blue");
});
$(".btn1-4").click(function(){
$(".view1 .class, .view1 #id").addClass("blue");
});
$(".btn1-5").click(function(){
$(".view1 *").addClass("blue");
});
}
01. 기본 선택자 - javascript
- $("li")
- $(".class")
- $("#id")
- $(".class, #id")
- $("*")
{
// $(".btn1-1j").click(function(){
// $(".view1j .class").addClass("red");
// }); --> jQuery 방식
//버튼을 클릭했을 때 실행하라~~~
const jreset1 = document.querySelector(".jreset1");
const jbtn1_1 = document.querySelector(".jbtn1-1");
const jbtn1_2 = document.querySelector(".jbtn1-2");
const jbtn1_3 = document.querySelector(".jbtn1-3");
jreset1.addEventListener("click", function(){
// document.querySelector(".jview1 li").classList.remove("red");
const lilist = document.querySelectorAll(".jview1 li");
for(let i=0; i<lilist.length; i++){
lilist[i].classList.remove("red");
}
});
jbtn1_1.addEventListener("click", function(){
document.querySelector(".j1_class").classList.add("red");
});
jbtn1_2.addEventListener("click", function(){
// document.querySelector("#j1_id").classList.add("red");
document.getElementById("j1_id").classList.add("red");
});
jbtn1_3.addEventListener("click", function(){
// document.querySelector(".jview1 li").classList.add("red"); -> 다중선택이 안됌
// document.querySelectorAll(".jview1 li").classList.add("red"); -> 에러뜸 : 선택자가 5개여야 함
const lilist = document.querySelectorAll(".jview1 li");
//5개 있는걸 확인해줘야 한다. -> for문
for(let i=0; i<lilist.length; i++){
lilist[i].classList.add("red");
};
//forEach문도 가능
// lilist.forEach(el=>{
// el.classList.add("red");
// })
//for of문
// for(let i of lilist){
// i.classList.add("red");
// }
//for in문
// for(let i in lilist){
// lilist[i].classList.add("red");
// }
});
}
02. 계층 선택자
div
pp
pp
pp
pp
pp
리셋
클릭하면 $("div p") 선택합니다.
클릭하면 $("div > p") 선택합니다.
클릭하면 $("div + p") 선택합니다.
클릭하면 $("div ~ p") 선택합니다.
{
$(".reset2").click(function(){
$(".s2 span").removeClass("blue");
});
$(".btn2-1").click(function(){
$(".s2 span").addClass("blue");
});
$(".btn2-2").click(function(){
$(".s2 > span").addClass("blue");
});
$(".btn2-3").click(function(){
$(".s2 .select + span").addClass("blue");
});
$(".btn2-4").click(function(){
$(".s2 .select ~ span").addClass("blue");
});
}