Skip to main content

Bug Tracker

Side navigation

#2047 closed enhancement (worksforme)

Opened December 13, 2007 12:40PM UTC

Closed December 17, 2007 02:34PM UTC

better parent function (Prototype "up" like)

Reported by: phpmyforum Owned by:
Priority: minor Milestone: 1.2.2
Component: core Version: 1.2.1
Keywords: Cc:
Blocked by: Blocking:
Description

I often need a specific parent element instead of all or the direct parent, so I came up with this function:

$.fn.extend({
    //### Prototype "up" method
    up: function(selector)
    {
        var found = "";
        selector = $.trim(selector || "");

        $(this).parents().each(function()
        {
            if (selector.length == 0 || $(this).is(selector))
            {
                found = this;
                return false;
            }
        });

        return $(found);
    }
});
Attachments (0)
Change History (5)

Changed December 17, 2007 01:01AM UTC by davidserduke comment:1

resolution: → worksforme
status: newclosed

Is this different from :

$(this).parents(selector);

?

http://docs.jquery.com/Traversing/parents#expr

If I'm missing something about how yours differs please feel free to reopen the ticket and let me know.

Changed December 17, 2007 09:56AM UTC by phpmyforum comment:2

resolution: worksforme
status: closedreopened

This is the difference:

$(this).parents(selector);

-> returns a set of all ancestors

$(this).up(selector);

-> returns just the first matched element

It behaves similar to prototype's up method (http://prototypejs.org/api/element/up), except you can't pass a number.

Though this could also be added.

Changed December 17, 2007 02:34PM UTC by brandon comment:3

resolution: → fixed
status: reopenedclosed

Just add the :first selector to your selector. Then it will return what you want. You can also use :eq, :gt or :lt.

Here are the docs for the selectors: http://docs.jquery.com/Selectors

Changed December 17, 2007 02:34PM UTC by brandon comment:4

resolution: fixed
status: closedreopened

Changed December 17, 2007 02:34PM UTC by brandon comment:5

resolution: → worksforme
status: reopenedclosed