2011-08-31 4 views
3

내가 원하는 것은 : $myElementjQuery를 CSS 선택기

클래스 .myClass 모든 요소를 ​​찾아 display:none 때문이다.

$myElement.find('.myClass:hidden') 

:

$myElement.find('.myClass[display=none]')

$myElement.find('.myClass').filter('[display=none]')

+0

표시가 속성이 아닙니다. – powtac

답변

6

당신은 :hidden 의사 선택을 사용할 수 있습니다 아래는 내가 시도 것입니다, 아마 멍청한 짓을보고 싶었어요 제안한 구문은 스타일 정의가 아닌 요소의 속성을 참조합니다. 본질적으로 선택자는 다음과 같은 요소와 일치하게됩니다.

<div class="myClass" display="none"> 

실제로별로 의미가 없습니다. 당신이 명시 할 경우 (요소가 in other ways also을 숨길 수)

에 대한 display 것 "없음", 당신은 .filter() 사용할 수 없습니다 : 당신은 디스플레이를 사용할 수 없습니다

$myElement.find('.myClass').filter(function() { 
    return $(this).css('display') == 'none'; 
}); 
+0

'표시'가 스타일에 맞아야합니까? –

0

이이 스타일에 포함되어 있기 때문에 그리고 속성 선택자가 아닙니다. 당신은하지만 jQuery의 :visible 의사 선택을 사용할 수 있습니다

$myElement.find('.myClass').not(":visible"); 

jQuery를 또한 :hidden 의사 선택

$myElement.find('.myClass').filter(":hidden"); 

이 사실 CSS 선택기를 jQuery를 구현하고 있지을 가지고, 그것을 찾아 사용하는 것이 가장 좋습니다 있도록 그 다음에 결과를 필터링하여 사용 가능한 모든 기능을 활용할 수 있도록하십시오.

0

내가 아는 한 jQuery에는 CSS 파일의 규칙과 일치하는 선택자가 없습니다. 그러나이 특정 경우에는 : visible이 있습니다 (결합 할 수 있습니다 : not). 표시되지 않는 모든 요소와 일치하므로 단순히 display : none을 갖는 것 이상을 의미 할 수 있지만 대부분 사용자가 찾고있는 요소 일 수 있습니다.

참조 : http://api.jquery.com/visible-selector/