I have a gnarly navigation structure that can be generalized as:
<ul id="navigation">
<li>
A
<ul>
<li>
B
<ul>
<li>C</li>
</ul>
</li>
<li>
D
<ul>
<li>
E
<ul>
<li>F</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Sub-items are hidden until hover. I want to indicate that B, D, and E have sub-items by styling them so I used the selector:
$('#navigation > li li:has(ul)')
Which only returned B and D. Changing it to:
$('#navigation > li li').has('ul')
returned all of the correct items but I'm confused as to why.
EDIT
:has()
doesn't appear to be affected (entirely) by nesting as
$('#navigation ul > li:has(ul)')
returns the same results as .has()
above.