Search code examples
javascriptjquerycss-selectorsjquery-selectors

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


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


Solution

  • 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.