Chris, it's like this... ;-)
$() returns a jQuery object, which is an array of DOM elements with jQuery
methods that apply either to the entire array or to the first element in the
array, depending on the method.
One of those methods is .each(), which loops through the DOM element array
and calls your function on each one, setting "this" to the individual DOM
element.
So, inside a $().each( ... ) function, "this" refers to a specific DOM
element. You can call DOM methods on that element and access its attributes
and properties using ordinary JavaScript.
You can wrap a DOM element with $(element) to get a jQuery object containing
that single DOM element. You can then call jQuery methods on that object.
In many cases, you can use either one interchangeably. Inside an each()
function, these would do the same thing:
alert( this.innerHTML );
alert( $(this).html() );
as would these:
alert( this.id );
alert( $(this).attr('id') );
Naturally, the first one of each of these pairs is faster and is recommended
in most cases.
-Mike
Mike, thanks so much for the advice! :o)
I guess I'm still fuzzy on when I can use 'this' as opposed to '$(this)'. I
would love to use this.myAttr, but didn't think I could. I really, really
appreciate you re-writing my code snippet to show me what you're talking
about. I know that the 'this' vs. '$(this)' discussion was had not too long
ago, but I didn't (or couldn't) pay too much attention at the time. If you'd
rehash it for me, or point me to the old thread, I'd appreciate that too!
:o)
Cheers,
Chris
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/