jquery :visible
by Ben Clayton
HTML
<div id='a'>
<div id='b'>
<div id='c'>
<div id='d'></div>
</div>
</div>
</div>
Checks display:block all the way up, but not visibilty or opacity.
CSS
#a {display:block;}
#b {opacity:0.0}
#c {display:block;}
div {border:1px solid red;padding:10px;}
JavaScript
console.log( $("#d").filter(':visible').length )