Except for the fact that IE doesn't seem to like innerhtml including <tr> etc
Michael Geary wrote: >> From: Aloyzas Rimeika >> >> ...But I recommend use $.dom plugin only in XHTML pages with >> MIME type application/xhtml+xml >> http://www.quirksmode.org/bugreports/archives/2004/11/innerhtml_in_xh.html >> >> Easier and faster solution is innerHTML >> http://www.quirksmode.org/dom/innerhtml.html >> >> For example: >> var json = [ >> {'name' : "John", 'surname' : "Smith"}, >> {'name' : "Sarra", 'surname' : "Smith"} ]; >> >> var table = $('#fill-table > tbody'); >> $.each(json, function(){ >> table.append('<tr class="MyTableRow">' >> +'<td class="MyTableCol1">'+ this.name >> +'<td class="MyTableCol2">'+ this.surname >> +'</tr>'); >> }); >> > > I'm with you there. I have switched most of my code from DOM creation to > innerHTML. > > BTW, you can speed up this kind of code by using Array.join instead of > string concatenation: > > var table = $('#fill-table > tbody'); > $.each(json, function(){ > table.append( [ > '<tr class="MyTableRow">', > '<td class="MyTableCol1">', this.name, '</td>', > '<td class="MyTableCol2">', this.surname, '</td>', > '</tr>' > ].join('') ); > }); > > It won't make a huge difference in a simple case like this, but if you're > concatenating very many strings, Array.join really speeds things up in most > browsers. > > -Mike > > > _______________________________________________ > jQuery mailing list > [email protected] > http://jquery.com/discuss/ > _______________________________________________ jQuery mailing list [email protected] http://jquery.com/discuss/
