Glad you like the [].join('') trick, Howard - and good catch on the unnecessary wrapper. You didn't miss anything, and that simplifies the example down to:
$('#exampleCA').append( [ '<table style="width:718px;border:2px inset #336699">', '<tr class="exampleRow">', '<td style="text-align:center;color:white;">', 'I was created by jQuery append', '</td>', '</tr>', '</table>' ].join('') ); One other thing I like about this approach is that - unlike the + concatenation operator - the comma operator has lower precedence than the ? : conditional operator and the || and && logical operators. So you can write code like this: var html = [ '<div>', name ? name : 'no name', '</div>' ].join(''); You could do that with string concatenation, but it would require parenthesis around the conditional expression, which adds a bit of ugliness. You're right on the appendTo vs. append question too - the docs need to be updated. Check the source code: jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(i,n){ jQuery.fn[ i ] = function(){ var a = arguments; return this.each(function(){ for ( var j = 0, al = a.length; j < al; j++ ) jQuery(a[j])[n]( this ); }); }; }); appendTo is just a wrapper around append - just like prependTo, etc. And all of these functions run their arguments through domManip(), which is the code that handles the text vs. DOM element question. I wouldn't assume that any jQuery function that takes a string will also take DOM elements or jQuery objects, but for this group of functions it's certainly true. -Mike > From: howardk > > Nice use of join()! I'm new to JavaScript and jQuery both, > and it's nice to come across little snippets like this I can > readily add to my jQuery repetoire and that slightly expand > my understanding of JavaScript. > > By the way, the docs show that it's legal to pass, as an > argument to append(), either a jQuery object (as you're > doing), a DOM element, or a string. So you really don't need > to wrap the stringified array in a jQuery object before you > pass it in. Unless there's another reason for doing so that > I'm missing. > > Apropos to the above, I wonder why the docs for appendTo() > show a string as being the only legal argument type? I tried > a test passing in a jQuery object instead and it worked just > fine. Does that mean you can use a jQuery object *any* time a > string is called for in other jQuery methods as well? Or just > a case of the documentation needing to be adjusted in this one case?