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