tags:

views:

89

answers:

3

I have this code:

$li = $("li", this)

Which is selecting all of the li's in my code. This works fine however I want $li to exclude the li's that are within a submenu.

    <ul id="navigation">
        <li><a href="#">blah 1</a></li>
        <ul id="subnav">
            <li><a href="#">sub 1</a></li>
            <li><a href="#">sub 2</a></li>
            <li><a href="#">sub 3</a></li>
        </ul>
        </li>
        <li><a href="#">blah 2</a></li>
        <li><a href="#">blah 3</a></li>
        <li><a href="#">blah 4</a></li>
        <li><a href="#">blah 5</a></li>
    </ul>

So $li would only reference the blah's not the sub's.

I thought it was something like:

$li = $("li", this).parents()

But this doesn't do what I want.

+12  A: 

Just use the child selector >:

$("#navigation > li")
Andy E
+10  A: 

You want to use the immediate child selector, >:

$li = $('#navigation > li');
David Hedlund
@David: look at our timestamps - exactly the same second :-)
Andy E
@Andy: Awesome. +1 for you, then.
David Hedlund
+2  A: 
var li = $("#navigation > li");

The > selects only direct children

harpax
+1 Everybody else was getting credit :-P
Jeremy