« Return to Thread: Creating an empty jQuery object

Re: Creating an empty jQuery object

by Danny Wachsstock :: Rate this Message:

Reply to Author | View in Thread

Yes, $('nonexistent-selector') works, but seems very inelegant. I think $([]) is the best solution, but I'd like to hear from the gurus. How much code depends on $() referring to document?


Sam Collett wrote:
On 16/02/07, Danny Wachsstock <d.wachss@prodigy.net> wrote:
>
> I've been using jQuery for a few months now, trying to convert all my
> hand-rolled javascript and came across a minor problem that I could not find
> documented anywhere:
> I want to create DOM elements and add them into a jQuery object, as in;
>
> var result = [empty jQuery object];
> $.each(...
>   var element = ...;
>   result.add(element);
> );
>
> But how to create an empty jQuery? Scouring the source code, I eventually
> hit upon $([]), but this is nowhere documented. Is there a better way?
> Is there a good reason $() should return $(document) rather than an empty
> jQuery?
>
> Daniel Wachsstock
> http://youngisrael-stl.org
>
> --

I found that out the hard way as well, so perhaps it should be
documented. I think searching for a class that does not exist (
$("atag.nonexistentclass") ) will also return an empty jQuery object.

As for changing $() to not return $(document), that may be a bad idea
as it helps reduce the amount of code to write, plus may break some
plugins.

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

 « Return to Thread: Creating an empty jQuery object