2013-09-30 1 views
7
나는이 간단한 jQuery를 조각으로 "발견"요소 수 (이러한 요소가 .highlight 클래스가) 검색하고

:JQuery와 발견 요소 : 블록

$(".highlight").length 

하지만 지금은 내 문제가 있다는 것입니다을 style="display: none;"

일부 요소는 숨겨져 있습니다. 어떻게 강조 표시되고 표시되는 요소 수를 얻을 수 있습니까? 같은

뭔가 :

$(hasClass 'highlight' AND has style 'display: block'). length ? 

답변

21

당신은 :visible이 볼 수 있습니다 요소를 얻을 수 있습니다. U는 요소를 볼 수 css을 사용하여 수행 할 수

$(".highlight:visible").length 
2

CSS를 display="none" 또는 display="block"있다

$(".highlight").each(function(){ 
     if($(this).css("display")=="block"){ 
      //Your code here 
     } 
    }); 
5

한 가지 방법은 아딜가 언급 한 바와 같이 :visible jQuery를 의사 선택기를 사용하는 것입니다.

일반적인 함정 클래스 .highlight를 가진 요소는 다음 숨겨져 컨테이너에 중첩되는 경우가 늘 그 요소는 다음과 같이 display: block

가 대신 CSS를 정규식을 사용할 수있다하더라도 그것을 얻을 수있을 것입니다 : $('.highlight[style*="display: block"]')

일반적인 함정은 규칙 작성 방법을 정확하게 알아야한다는 것입니다. block 앞에 공간이 없으면 display: block 대신 display:block 대신 요소를 가져올 수 없습니다.

이를 극복하기위한 방법과 같이 스타일에 용어 block 만 검색하는 것입니다 : $('.highlight[style*="block"]')