jQuery에서 css 선택자로 여러개의 요소를 받을 때는 <태그>의 배열을 반환.
x[0]은 태그를 반환하며 자바스크립트 코드를 적용할 수 있다.
만약 해당 태그를 $()안에 한번 더 넣으면 jQuery객체를 반환하며 jQuery문법을 사용한다.
아래는 예시다.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var x = $("P");
console.log(x[0]);
console.log(x[0].innerText);
console.log($(x[0]));
console.log($(x[0]).text());
});
</script>
**x[0] -> 태그를 반환 / js문법 기용
$(x[0]) -> $()는 jquery 객체 반환 / jquery문법 기용
x.text() -> 애가 알아서 jquery 객체 전체순회해서 해당 메서드를 적용시킴
css()
val()
text()
html()
궁금한점 : jquery선택자로 여러개를 반환받은 배열객체는 일반적인 배열객체인지? 아니면 다른 종류의 배열객체인지?
css 자식, 자손 / 근접형제1개, 뒤의모든형제선택자
>, 뛰어쓰기, +, ~
기본선택자 뒤에 붙여 사용가능.
속성값으로 시작하는 a[href^='https']
속성값으로 끝나는 a[href$='.net']
특정값이 포함하는 a[href*='www']
단어형태로 포함하는 a[href~='www']
x.css({color: 'value',font-size: 'value'}) 식으로 css메소드 하나에 style여러개 작성 가능
:animated
애니메이션이 동작 중인 모든 요소를 반환.
:eq(index)
지정한 index 값에 해당하는 요소를 반환.
음수값 지정도 가능. ( 마지막 요소부터 시작 )
:even 및 :odd
짝수 번째, 홀수 번째 해당하는 요소를 반환.
index값을 기준으로 판단하므로 주의 (index값은 0부터 시작함)
:first 및 :last
첫 번째, 마지막에 해당하는 요소를 반환.
각각 eq(0), eq(-1)과 동일
:gt(index) 및 :lt(index)
지정된 index값보다 큰 요소 및 작은 요소를 반환.
음수값 지정 가능.
:not(selector)
selector와 일치하지 않는 모든 요소를 반환.
예> :not(div)
:focus
현재 포커스 받은 요소 반환.
예> input:focus
:first-child 및 :last-child
지정된 요소의 부모 요소를 대상으로 첫 번째 자식, 마지막 자식 반환.
nth-child(index) 및 :nth-child(2n)
지정된 요소의 부모 요소를 대상으로 일치하는 index에 해당하는 자식 반환.
(index는 1부터 시작)
nth-child(even) 필터 및 :nth-child(odd)
짝수 번째 요소 및 홀수 번째 요소 반환. (index는 1부터): 부모요소 기준
:only-child
부모 요소를 기준으로 하나만 존재하는 자식 요소를 반환.
:button 필터 및 :enable, :disable
<button> 태그 반환.:checkbox 필터 및 :checked
:selected
1차적으로 선택자에 의해서 찾은 요소들을 다시 2차 필터링하거나
새로운 요소를 추가하거나 하는 작업을 할 때는 Traverse 관련 메서드를 사용하게 된다.
2차 필터링 가능
함수(메서드)사용
중요
end 메서드로 처음 선택자로 얻은 값들로 복귀 가능
filter()의 인자로 익명함수를 전달시 해당 함수의 매개변수 2개에 각각 index, tag가 들어온다. 또한 해당 함수 내에서 this 는 tag와 같다.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script type="text/javascript">
<script>
$(document).ready(function(){
$("li").filter(function(idx, ele){
//console.log(idx,":", ele);
console.log(idx,":", this);
})
});
</script>
함수 순회 및 return true;일 때 해당 요소를 선택한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery HTML Template</title>
</head>
<body>
<p>Hello</p>
<ul>
<li>A1</li>
<li>A2</li>
<li class="my">A3</li>
<li>A4</li>
<li>A5</li>
<li id="a">A6</li>
<li>A7</li>
<li>A8</li>
</ul>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script type="text/javascript">
<script>
$(document).ready(function(){
$("li").filter(function(idx, ele){
if(ele.innerText=="A4")
console.log(idx+" : "+ele.innerText);
return ele.innerText=="A4";
}).css("color", "red")
.end()
.filter(function(i, e){
if(i%3==0)
console.log(i+" : " +e.innerText);
return i%3==0;
}).css("font-size", "40px")
.end();
});
</script>
</body>
</html>