Ah, that's what I was looking for. I knew about jQuery's "chainability", but being more familiar with the Java world, I'm not used to chaining completely unrelated actions. That's really cool.
Thanks again. On 3/8/07, Karl Rudd <[EMAIL PROTECTED]> wrote: > If it is just one element you can do: > > var myelem = $('#myelem')[0]; > > Because the jQuery "wrapper" acts like an array you can just grab the > first element of the array, which is the "raw" DOM element. > > Another thing to keep in mind is jQuery's "chainability". So while > it's not so "efficient" to deal with just one object and do one thing > to it, if you want to do multiple things to one object (or many > objects) it becomes very "efficient". > > For example: > > $('#myelem') > .click( function(){ alert('blah'); } ) // assign a click event handler > .css( backgroundColor, "#000" ); // change the background color > > It's not quite like using "with", but it's pretty close. > > Karl rudd > > On 3/9/07, Rob Wilkerson <[EMAIL PROTECTED]> wrote: > > I knew about each(), but since I had only one element it seemed...I > > don't know...almost like overkill. I was hoping there would be > > something like: > > > > $('myele').do ( > > /** do stuff */ > > ); > > > > But, that having been said, I guess each() is effectively that. Maybe > > it's only the semantics of it that had me looking for a different way. > > > > Thanks for your help. > > > > On 3/8/07, Karl Rudd <[EMAIL PROTECTED]> wrote: > > > Something to also keep in mind is that most of the jQuery functions > > > have an implicit "each" included with them. A jQuery "object" is > > > basically an array of objects, so the methods you run on the object > > > are actually run on all the objects in the array. > > > > > > For instance, given the follow HTML: > > > > > > <ul> > > > <li>1</li> > > > <li>2</li> > > > <li>3</li> > > > </ul> > > > > > > The following script will change the background color of all the "li" > > > elements: > > > > > > $('li').css({backgroundColor:"#000"}); > > > > > > It's like writing: > > > > > > var elems = document.getElementsByTagName("li"); > > > for ( var i = 0; i < elems.length; i++ ) > > > elems[i].style.backgroundColor = "#000"; > > > > > > This is where jQuery gets a lot of it's "write less, do more" power from. > > > > > > Perhaps you should take a look at some of the tutorials: > > > > > > http://docs.jquery.com/Tutorials > > > > > > Karl Rudd > > > > > > On 3/9/07, Jake McGraw <[EMAIL PROTECTED]> wrote: > > > > Not exactly, to add to Chris's comment, using: > > > > > > > > $("myele").each(function() { > > > > // do lots of stuff > > > > }); > > > > > > > > will scope the 'this' keyword to whatever you've selected using > > > > $('myele'). > > > > > > > > So, for example, if I had: > > > > > > > > with(document.getElementById("myele")) { > > > > // myele now part of scope chain, no variable needed > > > > style.backgroundColor = "#000"; > > > > } > > > > > > > > I could replace it using the following jQuery: > > > > > > > > $("#myele").each(function(){ > > > > // myele now referenced using "this" > > > > this.style.backgroundColor = "#000"; > > > > }); > > > > > > > > Keep in mind that $(selector).each() will work with all elements that > > > > have > > > > been found using a given selector (see http://docs.jquery.com/Core). > > > > > > > > Also, this is just my opinion, but using the "with" keyword is usually > > > > a bad > > > > idea, as it is difficult to optimize such code and it can cause > > > > surprising > > > > behavior when defining functions within such blocks. Instead, just > > > > assign > > > > the element to a variable, using jQuery or JavaScript, like: > > > > > > > > var myele = $("#myele"); > > > > myele.css({backgroundColor:"#000"}); > > > > > > > > is equivalent to > > > > > > > > var myele = document.getElementById("myele"); > > > > myele.style.backgroundColor = "#000"; > > > > > > > > - jake > > > > > > > > > > > > On 3/8/07, Chris Domigan <[EMAIL PROTECTED]> wrote: > > > > > > > > > > You can use .each(). > > > > > > > > > > $("#myId").each(function() { > > > > > // do lots of stuff > > > > > }); > > > > > > > > > > _______________________________________________ > > > > > jQuery mailing list > > > > > discuss@jquery.com > > > > > http://jquery.com/discuss/ > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > jQuery mailing list > > > > discuss@jquery.com > > > > http://jquery.com/discuss/ > > > > > > > > > > > > > > _______________________________________________ > > > jQuery mailing list > > > discuss@jquery.com > > > http://jquery.com/discuss/ > > > > > > > _______________________________________________ > > jQuery mailing list > > discuss@jquery.com > > http://jquery.com/discuss/ > > > > _______________________________________________ > jQuery mailing list > discuss@jquery.com > http://jquery.com/discuss/ > _______________________________________________ jQuery mailing list discuss@jquery.com http://jquery.com/discuss/