[Javascript] jQuery 2 / 2

insung·2024년 7월 11일

  1. 선택자
  • JS는 이벤트 드리븐 방식으로 수행
    • 그렇기 때문에 이벤트 트리거를 발생시키는 요소를 특정해야 하며 선택자의 사용이 중요
    • jQuery선택자는 CSS 선택자 형식과 jQuery에서의 사용 형식으로 구성 됨
      • jQuery에서의 클래스는 수도 클래스로 아래와 같음
      • 대체 메서드가 있는 경우 대체 메서드 사용이 권장 됨
jQuery선택자대체 메서드설명
:first.first()조건이 맞는 첫 번째 요소
:last.lat()조건이 맞는 마지막 요소
:even.even()조건이 맞는 짝수 번째 요소
:odd.odd()조건이 맞는 홀수 번째 요소
:gt().slice()조건이 맞는 요소 중 매개변수 보다 큰 모든 요소
:lt().slice()조건이 맞는 요소 중 매개변수 보다 작은 모든 요소
:eq().eq()조건이 맞는 요소 중 매개변수에 해당하는 요소
:contains()매개변수로 전달되는 문자열을 포함하는 모든 요소
:parent()텍스트 노드를 포함하여 하나 이상의 자식 노드를 갖는 모든 요소
:animated애니메이션 효과를 적용중인 모든 요소
:has()매개변수로 전달되는 선택자 조건을 갖는 모든 요소
$('.btn').click(()=>{
	$('li.list-group-item').removeClass('active')
})

//$('li.list-group-item:first').addClass('active')
$('li.list-group-item').first().addClass('active')

// $('li.list-group-item:last').first().addClass('active')
$('li.list-group-item').last().addClass('active')

//$('li.list-group-item:even').addClass('active')
$('li.list-group-item').even().addClass('active')

//$('li.list-group-item:odd').addClass('active')
$('li.list-group-item').odd().addClass('active')

$(선택자).slice(start, [,end]) 
// end를 주면 start ~ end 까지
// end가 없다면 start부터 끝 까지
:gt(n)slice(n+1)과 같다고 보면 됨

// $('li.list-group-item:lt(2)').addClass('active')
$('li.list-group-item').slice(0, 2).addClass('active')

// $('li.list-group-item:eq(2)').addClass('active')
$('li.list-group-item').eq(2).addClass('active')

$('li.list-group-item:contains("An item")').addClass('active')

// 텍스트 노드를 포함한 하나 이상의 자식 노드를 갖는 모든 요소
$('li.list-group-item:parent').addClass('active')

// 텍스트 노드를 포함한 자식 노드가 없는 경우
$('li.list-group-item:empty').addClass('active')

// <em>을 자식 노드로 갖고 있는 지
$('li.list-group-item:has("em")').addClass('active')

$('li.list-group-item:animated').addClass('active')
  1. 속성
  • 속성은 HTML요소의 DOM속성을 조회하고 설정하는 방법을 제공
속성설명
attr()getAttribute(), setAttribute()를 결합한 속성 값 조회, 설정 기능을 수행
prop()속성의 조회 및 설정을 다루는데 주로 적용
val()input등에 입력하거나 선택한 값을 조회하거나 설정하는 메서드
  1. DOM조작
  • HTML 요소의 DOM을 여러 가지 방법으로 다루는 방법
  • 삽입, 삭제, 변경 메서드
분류DOM메서드설명
삽입.append()선택 요소의 마지막 자식 노드로 매개변수 삽입
삽입.prepend()선택 요소의 첫번째 자식 노드로 매개변수 삽입
삽입.before()선택 요소의 앞쪽에 형제 노드로 매개변수 삽입
삽입.after()선택 요소의 뒤쪽에 형제 노드로 매개변수 삽입
삭제.remove()선택된 요소를 DOM에서 삭제
변경.replaceWith()선택된 요소를 매개변수로 전달되는 콘텐츠로 교체
변경.replaceAll()매개변수에 해당하는 모든 요소를 선택된 콘텐츠로 교체
변경.wrap()선택된 요소 각각에 대해 매개변수로 감싸서 표현
변경.wrapAll()선택된 요소를 매개변수로 감싸서 표현
  • 횡단 메서드
    • 앞뒤양옆으로 이동하며 요소를 찾아 볼 수 있는 방법
횡단 메서드설명
.find()선택된 요소로 부터 하위 노드를 검색
(깊이우선검색)
.filter()선택된 요소로 부터 형제 노드를 특정한 조건으로 축약
(너비우선검색)
.children()선택된 요소의 자손 노드를 반환
.parent()선택된 요소의 부모 노드를 반환
.parents()선택된 요소의 상위 노드를 반환
.siblings()선택된 요소의 형제 노드를 반환
.prev()선택된 요소의 형제 노드 중 바로 앞선 노드를 반환
.next()선택된 요소의 형제 노드 중 바로 뒤를 따르는 노드를 반환
.is()선택된 요소에 조건에 대한 불리언 값 반환
.end()체이닝 환경에서 이전 상태로 되돌려줌
.each()선택된 요소에 대하여 반복문 형식을 제공
.map()선택된 요소에 대하여 반복문 형식으로 콜백 함수 제공

	$('ul.list').find('li').eq(2).addClass('active')

	$('li').filter('active').removeClass('active')
	$('li').filter((index)=>{
		return index % 2 === 1
	}).addClass('active')
	
	$('ul.list').children('.active').removeClass('active')
profile
안녕하세요 프론트엔드 관련 포스팅을 주로 하고 있습니다

0개의 댓글