@waseem sabjee: Don't know what to think of your answer... I already
figured to use .parents() without you... :)

@Michel Belleville: Wow, thank you for that wonderful answer! ;)

About .get(0), Firebug keeps telling me: "$(el).parents("div").get
(0).addClass is not a function"

I still find strange (that eventually gonna change :D) to add the
possibility to match a specified selector in the .parent() method if
it only applies to the direct parent... I don't really need all the
parents here, so it may be more efficient having a method that stops
looping through parents when the one we want is found. I guess I still
can use .parent().parent().parent() as I know the <div> should be the
third parent, but that would require change in the javacscript if i
want to change the HTML structure...

On 10 nov, 13:58, Michel Belleville <michel.bellevi...@gmail.com>
wrote:
>    - $(el).parent('div'); // didn't work because
> .parent()<http://docs.jquery.com/Traversing/parent>(only matches the
> direct parent, not any ancestors) is not the same as
>    .parents() <http://docs.jquery.com/Traversing/parents> (matches all
>    ancestors)
>    - $(el).parents('div'); // returning all matching ancestors is the point
>    indeed
>    - $(el).parents('div').get(0).addClass('myClass'); // should work, may be
>    a testing error (just tested it, worked for me)
>
> Anyway, continue to try things and you'll be efficient with jQuery, don't
> worry. Coming from another framework and re-learning the lingo is just a
> phase, it's frustrating but it's worth it. And jQuery may be an acquired
> taste but it's great once you're used to it.
>
> Michel Belleville
>
> 2009/11/10 waseem sabjee <waseemsab...@gmail.com>
>
>
>
>
>
> > var parent_element = $(".child).parents('div');
>
> > On Tue, Nov 10, 2009 at 12:16 PM, Savageman <savagema...@gmail.com> wrote:
>
> >> Hello,
>
> >> I'm using jQuery but am not really used to it (Mootools' user
> >> here...).
>
> >> I was trying to add a class to the first parent "div" of an element.
> >> Here is how I proceeded in the first place :
> >> - $(el).parent('div'); // Doesn't return anything: why?
>
> >> My second attempt was better (intermediate steps for better
> >> comprehension):
> >> - $(el).parents('div'); // Returns all parent div, cool but I only
> >> need the first:
> >> - ($el).parents('div').get(0); // Returns the div I want: yeah again!
> >> - $(el).parents('div').get(0).addClass('myClass'); // Doesn't work:
> >> why?
>
> >> Finally my last attempt (I asked for help) was the good one:
> >> - $(el).parents('div:first').addClass('myClass'); // Works fine
>
> >> I was expecting all of the 3 methods to work, but that's not really
> >> what's happening: kind of frustating! Can someone explain me why, so I
> >> become efficient with jQuery?
>
> >> Thank you in advance for the provided help.
> >> Sincerely,
> >> Savageman.

Reply via email to