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 -~----------~----~----~----~------~----~------~--~---