jQuery2018. 6. 17. 14:15

특정 객체(Object)가 특정 클래스 속성 값을 가지고 있는지 알아내는 다양한 방법


 

<div id="div_test" class="milk apple house">
...
</div>


1. hasClass 함수

if($("#div_test").hasClass("apple") === true) {

// 속성값 존재시 구문

}


if( jQuery('body').hasClass('page-id-552') == true ) {

jQuery('input.pf_search').focus();

};

→ ID가 div_test인 객체가 class apple 을 가지고 있는지 체크. hasClass 는 해당 객체가 파라메터로 들어온 속성값을 가지고 있는 경우 true를 반환.



2. is 함수

if($("#div_test").is(".apple") === true) {

// 속성값 존재시 구문

}

→ is 함수를 통해 특정 class를 포함하고 있는지 체크. is 함수에는 class 외에 id, name 등도 사용 가능하므로 반드시 클래스 이름 앞에 . 을 찍어서 클래스 속성임을 명시.



3. length 속성

if($("#div_test.apple").length) {

// 속성값 존재시 구문

}

→ apple 클래스 속성 존재시 length 길이는 1이 되며, 미존재시 0이 됨. length 값이 있는지 여부를 체크하여 class 속성이 존재하는지 확인할 수 있음.


if ($("#id").length > 0) {

//do something

};


→ length 특성 사용시 존재하는 객체의 갯수를 반환하고 존재하지 않으면 0를 반환, 즉 length가 1 이상일 경우 객체가 존재함을, 0일 경우 존재하지 않음을 의미



가독성, 성능(속도), 서비스 부하 등을 고려, hasClass를 사용하는 것이 좋음



※ 출처 : 이러쿵저러쿵 - [JQuery] Object의 특정 클래스(Class) 포함 여부를 확인하는 다양한 방법. : http://ooz.co.kr/245

Posted by cpu21