답변:
JQuery에서 반환 된 첫 번째 객체를 확인하여이를 단순화 할 수 있습니다.
if ($(".mydivclass")[0]){
// Do something if class exists
} else {
// Do something if class does not exist
}
이 경우 첫 번째 ( [0]
) 색인에 값이 참 이면 클래스가 있다고 가정하십시오.
편집 2013년 4월 10일 : 나는 jsperf 테스트 케이스를 만들었습니다 여기에 .
:first
거기에 던지면 성능에 도움이 될 것이라고 생각할 수도 있지만 (@itgorilla의 성능이 중요한 기준인지 여부는 알지 못하지만) jQuery가 할 수있는 기본 기능을 변경하기 때문에 브라우저에 따라 크게 달라질 수 있습니다. 선택. div가 존재하는 테스트 케이스 와 존재하지 않는 테스트 케이스가 있습니다 .
if (!$(".mydivclass")[0]){ /* do stuff */ }
을 사용할 수 size()
있지만 jQuery는 다른 함수 호출의 오버 헤드를 피하기 위해 길이를 사용하는 것이 좋습니다.
$('div.mydivclass').length
그래서:
// since length is zero, it evaluates to false
if ($('div.mydivclass').length) {
최신 정보
선택된 답변은 perf 테스트를 사용하지만 perf의 일부로 요소 선택도 포함되어 있기 때문에 약간의 결함이 있습니다. 여기서는 테스트되지 않습니다. 업데이트 된 성능 테스트는 다음과 같습니다.
http://jsperf.com/check-if-div-exists/3
테스트의 첫 번째 실행은 속성 검색이 인덱스 검색보다 빠르다는 것을 보여 주지만 IMO는 무시할 만합니다. 나는 여전히 길이를 사용하는 것이 더 간결한 조건 대신 코드의 의도에 대해 더 의미가 있습니다.
.length
현재 최고의 평균 성능을 제공합니다.
기본 JavaScript는 항상 더 빠릅니다. 이 경우 : (예)
if (document.querySelector('.mydivclass') !== null) {
// .. it exists
}
부모 요소에 특정 클래스의 다른 요소가 포함되어 있는지 확인하려면 다음 중 하나를 사용할 수 있습니다. (예)
var parent = document.querySelector('.parent');
if (parent.querySelector('.child') !== null) {
// .. it exists as a child
}
또는 .contains()
부모 요소 에서 메서드를 사용할 수 있습니다 . (예)
var parent = document.querySelector('.parent'),
child = document.querySelector('.child');
if (parent.contains(child)) {
// .. it exists as a child
}
마지막으로 주어진 요소에 특정 클래스 만 포함되어 있는지 확인하려면 다음을 사용하십시오.
if (el.classList.contains(className)) {
// .. el contains the class
}
$('div').hasClass('mydivclass')// Returns true if the class exist.
div
다시 이동, 페이지 요소와 루프를 통해 클래스가 있는지 확인하십시오. 모두 배열을 버립니다.)
hasClass
는 여기의 다른 선택기보다 33 % 빠릅니다. jsperf.com/hasclass00
div
내가 강조한 바로 그 문제를 회피하는 완전히 비현실적인 테스트 사례 (두 요소) 만 있습니다 (어레이 구축). jsperf.com/hasclass00/2 div로 시도해보십시오. Chrome 사본은 63 % 느리고 Firefox 사본은 43 % 느리고 Opera에서는 98 % (!) 느립니다. 그러나 선택기 엔진에 필요한 모든 정보를 제공하는 대신 div 목록을 작성한 다음 검색하는 것이 더 느리다 는 것이 합리적 입니다.
Jquery를 사용하지 않는 솔루션은 다음과 같습니다.
var hasClass = element.classList.contains('class name to search');
// hasClass is boolean
if(hasClass === true)
{
// Class exists
}
참조 링크
div
요소를 명시 적으로 테스트하려면 다음을 수행하십시오 .
if( $('div.mydivclass').length ){...}
.mydivclass
브라우저 및 jQuery 버전에 따라 약간 느릴 수 있습니다 .
div
.
간단한 코드는 다음과 같습니다.
if ($('.mydivclass').length > 0) {
//Things to do if class exist
}
particuler id로 div를 숨기려면 :
if ($('#'+given_id+'.mydivclass').length > 0) {
//Things to do if class exist
}
몇 가지 방법이 있습니다.
1. if($("div").hasClass("mydivclass")){
//Your code
//It returns true if any div has 'mydivclass' name. It is a based on the class name
}
2. if($("#myid1").hasClass("mydivclass")){
//Your code
// It returns true if specific div(myid1) has this class "mydivclass" name.
// It is a based on the specific div id's.
}
3. if($("div[class='mydivclass']").length > 0){
//Your code
// It returns all the divs whose class name is "mydivclass"
// and it's length would be greater than one.
}
요구 사항에 따라 abobe 정의 방법 중 하나를 사용할 수 있습니다.
if ($(".mydivclass").size()){
// code here
}
이 size()
메소드는 jQuery 선택기가 선택한 요소 수 (이 경우 클래스가있는 요소 수) 만 반환합니다 mydivclass
. 0을 반환하면식이 false이므로 아무 것도 없으므로 다른 숫자를 반환하면 div가 있어야합니다.
length
속성 이있을 때 왜 메서드를 호출 합니까? 또한 이것은 클래스뿐만 아니라 해당 클래스의 모든 요소를 검사 합니다 div
. (이제는 OP가 말한 것이 아니더라도 OP가 의미했던 것일 수 있습니다.) OP가 실제로 한 말을 수행하는 Stefan Kendall의 답변 을 참조하십시오 (다시 말하지만, 그들은 당신이 한 일을 의미했을 수도 있습니다).
div
이유로 -예, 나는 두 가지 이유로 인해 원래의 대답을 변경하여 부분 을 제거했습니다 .1) OP가 div
요소를 사용한다는 사실 (향후에 변경 될 수 있음)과 2)에서 선택기가 제한되지 않습니다 . 대부분의 브라우저와 jQuery, AFAIK 버전이 더 빠릅니다.
length
사용하지 왜 속성은 무엇입니까? 그러나 그것이 당신의 취향이라면, 공정합니다. 다른 한편으로는, 당신이 그것을 편집했는지 몰랐습니다. 내가 그렇게하려고한다면, 나는 그것을 남겨 두었을 것입니다 (다시 그는 구체적으로 "... if div with ..." (내 강조) 라고 말한 다음 추가 여부는 중요하지 않다고 언급했습니다) 이었다 div
여부, 당신은 그 부분을 도랑 수 그러나 어떤 :-)..
size()
오래된 배열뿐만 아니라 jQuery 선택기의 요소 수를 세는 것을 분명히하기 위해 방법이 있다고 생각합니다 . 그러나 다시, 그것은 단지 나의 선호입니다.
var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}
Jquery에서는 다음과 같이 사용할 수 있습니다.
if ($(".className")[0]){
// Do something if class exists
} else {
// Do something if class does not exist
}
JavaScript로
if (document.getElementsByClassName("className").length > 0) {
// Do something if class exists
}else{
// Do something if class does not exist
}
다음은 자바 스크립트의 검사 클래스 (hasClass)에 대한 샘플 솔루션입니다.
const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
// do something if 'hasClass' is exist.
}