Search code examples
jqueryjquery-selectorschaining

Chaining jQuery selectors :lt and :gt


I have a table with more than 9 rows.

If I do this : $('table tr:gt(3):lt(6)'), shall I receive 3 or 6 elements at the end, and why? Are all selectors applied to the same primary selection, or are they successively applied on different selections?


Solution

  • They're applied sequentially, so first you will filter away the first four elements (:gt(3)), then you will filter away all elements after the sixth (:lt(6)) element of the already filtered set.

    Imagine this HTML:

    <br/><br/>
    <br/><br/>
    <br/><br/>
    <br/><br/>
    <br/><br/>
    <br/><br/>
    

    Then do the following jQuery:

    $('br:gt(3):lt(6)').addClass('sel');
    

    You will now have:

    <br/><br/>
    <br/><br/>
    <br class="sel"/><br class="sel"/>
    <br class="sel"/><br class="sel"/>
    <br class="sel"/><br class="sel"/>
    <br/><br/>