Jquery Select element 2 positions further - another way to .next().next()

Phil picture Phil · Sep 9, 2010 · Viewed 7.1k times · Source

I am searching for a way how I could select a div element which is not the direct next one to the one which is "selected" by a click function.

<div id="click">(siblings)</div><div>text</div><div id="get this one"></div>

Now I would like to select the one with the id "get this one" - in my code this id is not available. All the divs have the same class and do have siblings.
I could select the third one by $(this).next().next() but I think it's not the best way to do it.
Also there can be divs before the one which is clicked - so it's not necessarily the first one.

I tried the :nth-child selector but didn't find a solution.
Later I also may want to select the 13th one after the click one (or the 23th, 65th and so on). This means I would like to have a rather dynamic solution to this problem.

Thanks for your help,
Phil

Answer

Nick Craver picture Nick Craver · Sep 9, 2010

You can use .nextAll() with .eq() for your dynamic approach, like this:

$(this).nextAll().eq(1) //0 based index, this would be .next().next()

This would allow you to get n siblings forward, which seems to be what you're after.