thank you guys, I really appreciate your comments and insight!

On Oct 1, 10:05 pm, howardk <[EMAIL PROTECTED]> wrote:
> I do occasionally look at the source code, but I'm still new enough to
> JavaScript that sometimes (even with 12 years of Java under my belt,
> and a whole slew of other languages going back some 40 years) that
> when I'm faced with new js constructs for the first time, about all I
> can do is stare glassy-eyed and go "Huh?" And that's pretty well my
> reaction to the snippet you posted below: "Huh?" :-) Would you be up
> for walking through it verbally, explaining what it's doing?
>
> In any event, not to worry: I'm learning fast, and I'm intrigued. This
> is a much more interesting language than I had previously thought.
> Howard
>
> On Sep 30, 9:44 pm, "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?

Reply via email to