본문 바로가기
프로그래밍/JavaScript

javascript & jQuery 요소 찾기 정리

by so5663 2023. 1. 8.

javascript

document.getEelmentsByTagName(태그이름)
document.getEelmentById(아이디);
document.getEelmentsByClassName(클래스이름); //	HTMLCollection 반환
document.getElementsByName(name속성값);         
document.querySelector(CSS 선택자);         //	선택자에 해당하는 첫번째요소만 선택
document.querySelectorAll(CSS 선택자)       //	선택자에 해당하는 모든요소, 반환객체(nodeList)
  •  
* HTMLCollection
	- 요소의 문서 내 순서대로 정렬된 일반 컬렉션(arguments 처럼 배열과 유사한 객체)
	- 리스트에서 선택할 때 필요한 메서드와 속성을 제공    


* 속성
	- HTMLCollection.length
		: 컬렉션 항목의 갯수를 반환


* 메서드
	- HTMLCollection.item(index)
		: 리스트에서 주어진 인덱스의 노드를 반환, 인덱스가 범위 밖일 경우 null을 반환
		: HTMLCollection[index] 같은 기능
	- HTMLCollection.namedItem(name or id)
		:  리스트에서 ID 또는 이름 속성이 주어진 문자열과 일치하는 노드를 반환, 
    		이름 속성판별은 HTML에서만 최후의 수단으로 쓰이며 참조하는 요소가 name 속성을 지원해야 함, 
		: 일치하는 요소가 없으면 null을 반환
		: HTMLCollection.name(or id) 같은 기능

 

 

jQuery

		$('*'); 			//모든 엘리먼트 선택
		$('div'); 			// Tag 이름으로 노드 찾기
		$('#idName') 		// id 이름으로 노드 찾기
		$('.className'); 	// class 이름으로 노드 찾기
		$('ul.className');	// ul엘리먼트 중 class 이름이 className인 엘리먼트 선택
		$('ul, div'); 		// ul 및 div 태그 선택
		$('div img'); 		// div의 자손노드 중 Tag 이름이 img인 모든 엘리먼트 선택
		$('ul .className'); // ul의 자손노드 중 class 이름이 className 인 엘리먼트 선택
		$('ul>li'); 		// ul Tag의 바로 아래 자식노드 중 li Tag인 엘리먼트 선택


	 * 필터
		:not(selector)	// 셀렉터와 일치하지 않는 요소들 리턴
		:first			// 선택된 요소 중 첫 번째 요소
		:last			// 선택된 요소 중 마지막 요소
		:even			// 선택된 요소 중 짝수 인덱스 요소들
		:odd			// 선택된 요소 중 홀수 인덱스 요소들
		:eq(index)		// 선택된 요소 중 지정된 index 번호를 가진 요소
		:gt(index)		// 선택된 요소 중 지정된 index 번호보다 큰 인덱스 요소들
		:lt(index)		// 선택된 요소 중 지정된 index 번호보다 작은 인덱스 요소들 
		:header			// h1 ~ h6 요소들
		:animated		// 애니메이션이 적용된 모든 요소들
		:focus			// 현재 포커스를 가지고 있는 요소
		:contains("text")	// "text"를 가지고 있는 요소들
		:empty				// 자식 요소가 없는 모든 요소들
		:parent				// 자식 요소를 가지고 있는 모든 요소들
		:has(selector)		// selector에 부합하는 요소를 하나 이상 가지고 있는 요소들
		:hidden				// 화면에서 숨겨진 모든 요소들
		:visible			// 공간을 차지하고 있는 모든 요소들
		:nth-child(expr)	// expr 순번의 자식 요소
		:first-child		// 첫번째 자식 요소
		:last-child			// 마지막 자식 요소
		:only-child			// 요소의 자식 요소가 하나뿐인 요소

		//예시
		$('div:not("#summary")');	// #summary를 제외한 나머지 div 태그들을 선택
		$("li").eq(3);				// 찾은 노드 중 4 번째 노드에 접근하기
		$("div:has(p)");			// <p> 요소를 가진 모든 <div> 요소들
		$("ul li:nth-child(2)");	// 두 번째 <li> 요소


	* 속성옵션 필터
		$("[attr]");	        // attr 속성을 가진 모든 요소들
		$("el[attr]");			// 속성 attr 를 포함한 모든 el 노드 찾기
		$("el[attr=val]");      // 속성 attr 의 값이 val 인 모든 el 노드 찾기
		$("el[attr!=val]");     // 속성 attr 의 값이 val이 아닌 모든 el 노드 찾기
		$("el[attr^=val]");	    // 속성 attr 의 값이 val 로 시작하는 모든 el 노드 찾기
		$("el[attr$=val]");	    // 속성 attr 의 값이 val 로 끝나는 모든 el 노드 찾기
		$("el[attr*=val]");	    // 속성 attr 의 값이 val 을 포함하고 있는 모든 el 노드 찾기
		$("[attribute|='value']");	// 속성값이 value값과 일치하거나 value- 으로 시작하는 요소들
		$("[attr1][attr2]");		// 지정된 속성중 하나를 가진 모든 요소들

		// 예시
		$("div[class*=test]");		// class의 값이 test를 포함하고 있는 모든 div 노드
 
  	* 폼 요소
		폼 요소의 값 조회하기
		<input>,<textarea>,<select> 요소의 값을 알아낸다.
		.val()
		 폼 필터
		:input, :text, :password, :radio, :checkbox, :submit,
		:image, :reset, :button, :file, :selected
		:enabled, :disabled, :checked
        
		//예시
		$('input[name="checkbox"]:checked'); 
		// name 속성의 값이 checkbox인 input 태그 중 checked 되어있는 요소 찾기