or $('h2').parents('[id]:first')

sorry 'bout the flooding :)

On Dec 20, 9:57 pm, Ricardo Tomasi <ricardob...@gmail.com> wrote:
> $('h2').parents('[id]')
>
> should work!
>
> On Dec 20, 8:17 am, "graphic...@googlemail.com"
>
> <graphic...@googlemail.com> wrote:
> > Hi,
>
> > Thanks for helping. I think I haven't explained properly what I
> > wanted....
>
> > I'm looking for the first parent with an attribute 'id', which in this
> > example was <div id="main">.  However it could be anything, not
> > necessary "main", so your code wouldn't work as you are looking
> > specifically for "#main".
>
> > I think your .each() function is correct, however I can't test right
> > now, but will give it a go.
> > Thanks for that. :)
>
> > On 19 Dec, 21:33, Ricardo Tomasi <ricardob...@gmail.com> wrote:
>
> > > To get the #main parent you'd use
>
> > > $('h2').parents('#main')
>
> > > You can get indexes for all parents in 'inside out' order, or use the
> > > index() function to calculate them:
>
> > > $('h2').parents().each(function(index){
> > >    // p index == 0
> > >    // div index == 1
> > >    // #main index == 2
> > >    $(this).parent().children().index(this); //should give you the
> > > indexes you want (p==2,div==0)
>
> > > });
>
> > > Hope you get the idea. Check the documentation (docs.jquery.com/
> > > Selectors, docs.jquery.com/Traversing) in case of doubt :)
>
> > > - ricardo
>
> > > On Dec 19, 2:13 pm, "graphic...@googlemail.com"
>
> > > <graphic...@googlemail.com> wrote:
> > > > Hi,
>
> > > > Consider the following html :
>
> > > > <div id="main">
> > > >   <div>
> > > >       <p/>
> > > >       <p/>
> > > >       <p>
> > > >          <h2> target node </h2>
> > > >       </p>
> > > >   </div>
> > > > </div>
>
> > > > Starting from the h2 node, I want to find its closest parent with an
> > > > id, in this case the div with id="main".  I also want to store the
> > > > index position of all of the parents of the target. In this case that
> > > > would be 0 (for the div right under "main") and 2 (for the third <p>)
>
> > > > How can I do that using jQuery ? I hope what I ask is clear enough.

Reply via email to