What about something like (and this is very rough, but hopefully
conveys the general idea):

jQuery.fn.hasDescendant = function(descendant) {
    jQuery.data(this.get(0), "has_d", "found");
    descendant = jQuery(descendant);
    while (descendant.parent().length) {
        if (jQuery.data(descendant.parent().get(0), "has_d") == "found") {
            jQuery.removeData(descendant.parent().get(0), "has_d");
            return true;
        } else
            descendant = descendant.parent();
    }
    jQuery.removeData(this.get(0), "has_d");
    return false;
}

-- dz



On Fri, Feb 6, 2009 at 10:43 AM, Jörn Zaefferer
<joern.zaeffe...@googlemail.com> wrote:
>
> Nope, that isn't it. My example is simplified, and the target comes an
> event triggered elsewhere. So target is just a reference to a DOM
> element, and can't be replaced with some selector.
>
> Jörn
>
> On Fri, Feb 6, 2009 at 3:46 PM, David Zhou <da...@nodnod.net> wrote:
>>
>> Isn't that basically:
>>
>> if ($('.container a:first').length)
>>    $('.container').css('background-color', 'red');
>>
>> Unless I misunderstand what you're asking for?
>>
>> -- dz
>>
>>
>>
>> On Fri, Feb 6, 2009 at 6:58 AM, Jörn Zaefferer
>> <joern.zaeffe...@googlemail.com> wrote:
>>>
>>> I'm trying to solve the follow selector problem: Assuming two
>>> container elements that both have arbitrary descendents. Given a
>>> jQuery object containing these containers and one descendent of any of
>>> these, whats the most effecient way to find the correct parent
>>> element? Neither parents() nor closest() helps, as there is no
>>> sufficient simple selector available.
>>> In other words, I want to filter a selection by a descendent.
>>>
>>> My naiive implementation goes through all descendents, which isn't
>>> really acceptable: http://jsbin.com/uhama/edit
>>>
>>> Ideas?
>>>
>>> Jörn
>>>
>>> >
>>>
>>
>> >
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to