Thanks, Ricardo...good to know.

Rick

-----Original Message-----
From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On
Behalf Of ricardobeat
Sent: Thursday, March 05, 2009 11:38 AM
To: jQuery (English)
Subject: [jQuery] Re: Simple one: difference between varXy.find(':text') and
$(varXy).find(':text')


For one or two references it will probably be irrelevant, but for cases
where you're looping over with each() it can make a meaningful difference. A
selector like $('div:not(#topo) div.home div .subdestaque') takes between
5-20ms depending on the browser, by saving the object in a variable you cut
the whole of that time for each use - a local variable lookup is, for
performance matters, instantaneous.

cheers,
- ricardo

On Mar 5, 1:07 pm, "Rick Faircloth" <r...@whitestonemedia.com> wrote:
> Thanks for the further input, Ricardo...
>
> Is there any way you can put a percentage of processing and/or time 
> saved by using var with elements?  Especially if there is only one or 
> two references on a page?
>
> Rick
>
> -----Original Message-----
> From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] 
> On
>
> Behalf Of ricardobeat
> Sent: Thursday, March 05, 2009 11:00 AM
> To: jQuery (English)
> Subject: [jQuery] Re: Simple one: difference between 
> varXy.find(':text') and
> $(varXy).find(':text')
>
> It's mostly done to improve performance. If you save the jQuery object 
> in a var you only need to find the element once (depending on the 
> selector it's an expensive operation), and then operate on that single 
> object. I (and other people) like to put a '$' in front of the var 
> name when it contains a jQ object, to make it clear:
>
> var $mySet = $('.mystuff'); //jQ object
> $mySet.click(...).append(...)
>
> var myElement = $('#someelement')[0]; //HTML element 
> $(myElement).doSomething();
>
> by doing $($mySet) you're unnecessarily creating a new object from the 
> one you have already stored. It's not really much overhead, but bloats
code.
>
> ggerri: this.something() where 'something' is a jQuery method is 
> usually found in plug-ins:
>
> jQuery.fn.doSomething = function(){
>      // in here, 'this' refers to the current jQuery object/set
>      //so you can use methods on it, like each
>      this.each(function(){
>         // here, 'this' is the current element in the loop, not a jq 
> object
>         //so you need to wrap it in jQ before using it
>         $(this).append(...)
>      });
> };
>
> cheers,
> - ricardo
>
> On Mar 5, 9:58 am, "Rick Faircloth" <r...@whitestonemedia.com> wrote:
> > Hi, Rayn :handshake: :o)
>
> > I think, for shorthand notation (some say for readability, but I 
> > think otherwise), some set var's (variables) to represent pieces of 
> > code, for
> instance:
>
> > var mySet = '$(mySet)'
>
> > and then use it as:
>
> > mySet.find(':text')...
>
> > Written in "longhand", it would be:
>
> > $('mySet').find(':text')...
>
> > When trying to read someone else's code, where this shorthand is use 
> > extensively, I just find it hard to decipher, since I have to trace 
> > all the var's down to find out what they stand for...
>
> > Someone please correct me if I'm wrong...
>
> > Rick
>
> > -----Original Message-----
> > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com]
> > On Behalf Of ggerri
> > Sent: Thursday, March 05, 2009 7:31 AM
> > To: jquery-en@googlegroups.com
> > Subject: [jQuery] Re: Simple one: difference between
> > varXy.find(':text') and $(varXy).find(':text')
>
> > Thanks Ryan :handshake:
>
> > so  mySet.find(':text').each(...) would be right and
> > $(mySet).find(':text').each(...) not? :confused:
>
> > In examples I often see (within an each function): $(this).something 
> > but also this.something
>
> > Still dont get the difference of use :,(
>
> > G
>
> > ryan.joyce...@googlemail.com wrote:
>
> > > mySet is an object or variable, $(mySet) will try to get an 
> > > element using the contents of mySet as the selector.
>
> > > On Mar 5, 10:04 am, ggerri <gerald.ressm...@ewz.ch> wrote:
> > >> Hi there
>
> > >> thats an easy one for you ;-)
>
> > >> if i do:
>
> > >> var mySet = $('tr>td:nth-child(2n)');
>
> > >> how do I use mySet? What's the difference between
>
> > >> mySet.find(':text')
>
> > >> and
>
> > >> $(mySet).find(':text')
>
> > >> Thanks :-))
> > >> GGerri
>
> > >> --
> > >> View this message in
>
> context:http://www.nabble.com/Simple-one%3A-difference-between-varXy.f
> ind%28
> %...
> > >> Sent from the jQuery General Discussion mailing list archive at 
> > >> Nabble.com.
>
> > --
> > View this message in
> context:http://www.nabble.com/Simple-one%3A-difference-between-varXy.f
> ind%28
> %...
> > Sent from the jQuery General Discussion mailing list archive at
> Nabble.com.

Reply via email to