종류 | 선택자 | 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");
});
}