One of the greatest things about jQuery though is that the code is quite easy to read and understand, so if unsure just check. If still unsure, then what a great active community though the groups !
Love the tips, it might be quite nice if maybe the core could be changed to accept an array (maybe it already does) maybe it would be an extra overhead that's not needed. /James On 10/1/07, Michael Geary <[EMAIL PROTECTED]> wrote: > > > 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? > > > > >