Hi folks, I was mulling over both those two DOM instantiation patterns just this week.
Has anyone actually run that test? I'm curious what the numbers were. There is this delightful feel of control and power in $("<input type='hidden'/>").attr({id:"myid", name:"myname"}).val("foo").appendTo(this); but $(this).append("<input type='hidden' name='myname' id='myid' value='foo' />"); *seems* more efficient (no chaining). My code has a few of these and I opted for the latter, not only because my brain said "less cycles" but also because, for me, it proved easier just to write out the markup as markup and then plug that into the JS. Make sense? - Eli On Jan 26, 7:17 am, Karl Swedberg <[EMAIL PROTECTED]> wrote: > On Jan 25, 2008, at 10:13 PM, David Serduke wrote: > > > > > How about > > > $("<input type='hidden'/>").attr({id:"myid", > > name:"myname"}).val("foo").appendTo(this); > > > I think that would work although the way you have it would be faster. > > Most elements you could just say $("<div/>") to create a new one but > > in IE the input requires the type be set. So you have to specify the > > type in the inital jQuery call as shown above. > > Hey David, > > Very interesting that the way you mention above is not as fast as > putting in the whole HTML string at once. In our books, Jonathan > Chaffer and I chose to build new elements the "slower" way -- > with .attr({}) -- to make the code more readable and to keep it closer > to the "DOM Scripting" ideal, but I hadn't tested comparative speeds, > assuming that there wouldn't be much of a performance hit. > > --Karl > _________________ > Karl Swedbergwww.englishrules.comwww.learningjquery.com