Thanks Guys, That has been very helpful.
On Jul 12, 4:52 pm, "Michael Geary" <[EMAIL PROTECTED]> wrote: > Yeah, as Klaus mentioned, it is a tiny bit faster if you leave out the > 'img'. > > The real optimization you can do is to avoid using the same selector > repeatedly. In a way, jQuery makes it too easy to write inefficient code: > > $('#foo').doSomething(); > // ...later... > $('#foo').doSomethingElse(); > > Replace that with: > > var $foo = $('#foo'); > $foo.doSomething(); > // ...later... > $foo.doSomethingElse(); > > As you can see, I use $variableName as a convention to remind me that the > variable is a jQuery object. > > This will make more of a difference with slower selectors like > $('.someClass'). Even though jQuery is much faster than it used to be, it's > still faster if you can avoid repeating the selector query at all. > > -Mike > > > From: NeilM > > > I have just started to use jQuery in my web development and > > have a question concerning optimising element selection. > > > I find that I create a lot of references to id'd elements: > > > <img id="myImage" src="todaysimage.gif" width="20" height="20" /> > > > Then, in my JavaScript, I want to obtain a reference to the element. > > Now, even though it has an id, I tend to use the full CSS > > descriptor as, to me anyway, it makes the code more readable: > > > $("img#myImage").addClass("border"); > > > My question is, apart from the overhead of some extra > > characters in the script (e.g. 'img#'), does this style of > > specification introduce a performance overhead internally > > within jQuery? Would/does jQuery optimise the element > > selection process if it just 'sees' a simple id string > > starting with a #? > > > $("#myImage").addClass("border");