2009-04-17 5 views
72

Jquery : 요소에 특정 CSS 클래스/스타일이 있는지 확인하는 방법

<div class="test" id="someElement" style="position: absolute"></div> 

특정 요소가 있는지 확인하는 방법이 있습니까 :

$("#someElement") 

특정 클래스 (내 경우에는 "test")가 있습니다.

또는, en 요소가 특정 스타일을 가지고 있는지 확인하는 방법이 있습니까? 이 예에서는 요소에 "position : absolute"가 있는지 알고 싶습니다.

대단히 감사합니다!

+14

it'sd 경우 문제 확인 또는하지를 대답은 틀렸지 만 질문에는 style = "test"가 있고 대답은 class = "test"를 찾습니다. – wheresrhys

+1

잘못된 대답을 올바른 것으로 표시했기 때문에 제 질문은 잘못된 것입니다. 상관없이, 투표를보고 난 후에, 나는 대부분의 사람들이이 잘못된 질문에 대한 올바른 답을 찾기 위해 우연히 만났다고 생각한다 ... 어, 그것이 의미가있는 경우 ... DrJokepu의 대답, 내 말. 그게 내가 여기있는 이유 야. – BrainSlugs83

답변

51
if($('#someElement').hasClass('test')) { 
    ... do something ... 
} 
else { 
    ... do something else ... 
} 
+0

대단히 감사합니다. 완벽한 해결책 – 0100110010101

+56

이것은 질문에 답하지 않습니다 - 아래의 DrJokepu의 답변을 참조하십시오. –

+0

덕분에 완벽하게 작동합니다. :) – Rajnikanth

1

나는 하나 개의 솔루션 발견했습니다

$("#someElement")[0].className.match("test") 

을 어떻게 든 내가 더 좋은 방법이 있다고 생각!

241

CSS 스타일은 "태그"가 아닌 키 - 값 쌍입니다. 기본적으로 각 요소는 CSS 스타일의 전체 집합을 할당받습니다. 대부분의 요소는 브라우저 기본값을 암시 적으로 사용하며 일부는 CSS 스타일 시트에서 명시 적으로 재정의됩니다.

은 요소의 특정 CSS 항목에 할당 된 값을 얻을 비교하려면 다음 스타일을 다시 정의하지 않은 경우, 당신은 특정 요소에 대한 브라우저의 기본을 얻을 것이다

if ($('#yourElement').css('position') == 'absolute') 
{ 
    // true 
} 

.

+0

wow. 그걸 몰랐어. 감사합니다. – 0100110010101

+3

선택기로 처리 할 방법이 없습니까? – BrainSlugs83

+0

이것으로 당신은 실제 속성이 무엇인지 알 수 있습니다.이 속성이 직접 설정되어 있는지 또는 CSS 스타일/브라우저에서 상속되었는지 알고 싶습니다 ... 가능합니까? –

12
if ($("element class or id name").css("property") == "value") { 
    your code.... 
} 
0

또는 그 속성이 요소에 액세스해야하고 ID를 사용하지 않는 경우, 당신은이 경로 갈 수 :

$("img").each(function() { 
     if ($(this).css("float") == "left") { $(this).addClass("left"); } 
     if ($(this).css("float") == "right") { $(this).addClass("right"); } 
    }) 
관련 문제