Unknown attributes, what? The reason $('#element') returns a jQuery object is it lets you chain jQuery functions, which allows more efficient code. And the scope inside of anonymous functions in jQuery is the DOM element itself, not the jQuery object:
$('#element').click(function(){
this.id; <- the DOM element
$(this).attr('id'); <- rewrap required
}
Also, same result:
var x = $('#element');
x.attr('id'); <- jQuery object
x[0].id; <- DOM element
Your argument that it's "a silly object with unknown attributes" just means you don't know very much jQuery. And if you're ever curious what attributes it has you can let Developer Tools or Firebug tell you with the auto-suggest dropdown:
That's also an anti-pattern. JQuery was designed to hide iteration from designers who can't code. I'm floored that people that actually know how to program still think it's a good idea.
$('DIV').click(..).color()...border()...
It might look fancy, but all it's doing is obscuring the fact that iteration might be occurring on each command which for obvious reasons would be a bad idea. A designer might not care, but a programmer who knows JavaScript will probably write something like this instead: