I filed a bug and submitted the corresponding patch: 
http://dev.jquery.com/ticket/5172
comments are welcome.

On Sep 6, 11:30 pm, lrbabe <lrb...@gmail.com> wrote:
> Unfortunately it doesn't work like that in the latest nightly.
> What is causing the most confusion is that the three following queries
> do not produce the same context:
>
> $("div", document.getElementById("myId"));
> $("div", $("#myId"));
> $("div", "#myId");
>
> Actually, only the first one result in the element with the id "myId"
> to be set as the context.
> There is however quite a simple and inexpensive fix for the second and
> third selectors:
> - The second syntax is currently treated with the following code:
>   return (context || rootjQuery).find( selector );
>   A test can be added to check if there is a single DOM node in the
> context:
>   if(context && context.length == 1) context.context = context[0];
>   return (context || rootjQuery).find( selector );
> - The third syntax is treated this way:
>   return jQuery( context ).find( selector );
>   we could instead use the second syntax which would effectively check
> if there is a single DOM node:
>   return jQuery( selector, jQuery( context ));
>
> Note that the second syntax is more efficient than the third one, due
> to a reduced number of function calls.
>
> This two line fix should make the context parameter behave more
> consistently and be easier to understand for developers.
>
> Louis-Rémi Babé
>
> On Aug 14, 1:24 pm, John Resig <jere...@gmail.com> wrote:
>
> > > That can't be true, right? It doesn't "search the whole doc".
>
> > Correct, it only searches the limited sub-set.
>
> > > The "context" property may be "document" but ".myClass" is only
> > > searched for within "#myContainer", right? (this is how I see it,
> > > after looking at the source)
>
> > > I think the main reason people (including me) are confused is because
> > > the "context" property does not correspond with the "context"
> > > parameter. I'm not too bothered about it but it seems to be causing
> > > confusion elsewhere.
>
> > Correct - regardless of what's passed in as the context argument, it must be
> > translated into a single DOM node, which will act as the root against
> > queries will be executed. This node is what is stored in .context.
>
> > --John
--~--~---------~--~----~------------~-------~--~----~
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