Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add a row on top of table generated by Javascript

I made a mis calculation in a table structure. The code beneath is for a lotto game (a known piece of code I think ;))

Is there a way to add a row on top of the table filled with a numbers? I really don't know how to do this.

http://www.coldcharlie.nl/lotto/

<script type="text/javascript">  (function() {   var players = {     Joop   : ["6","8","16","18","26","28","32","36","38","41"],     Marijke: ["7","10","14","18","24","29","30","34","39","40"],     Michel : ["4","5","11","16","21","27","33","36","42","44"],     Mario  : ["6","9","18","25","32","35","39","40","43","45"],     Diana  : ["2","6","8","17","22","23","33","36","42","45"],     Agnes  : ["3","5","10","15","26","29","32","37","41","44"],     Chris  : ["5","7","8","9","11","12","16","28","30","32"],     Jeannette: ["1","2","4","7","8","11","13","28","30","38"],     Wieger: ["1","2","3","7","10","13","14","22","23","27"],     Anita: ["6","13","15","17","21","26","32","33","43","45"],     Thea: ["1","3","5","7","10","17","19","20","22","38"],     Danny: ["3","7","11","15","22","28","32","37","40","43"],     Cindy: ["2","4","16","18","21","24","33","38","41","44"],     Hanneke: ["1","3","4","12","18","21","25","30","36","40"],     Willem: ["3","9","17","21","27","33","35","39","41","42"] },  draws = [     {     when: 'Datum: Zaterdag 08-08-2009',           picks:[2, 13, 15, 18, 21, 41]     },      {     when: 'Datum: Zaterdag 15-08-2009',       picks:[6, 19, 24, 25, 35, 37]     },      {     when: 'Datum: Zaterdag 22-08-2009',       picks:[8, 17, 23, 26, 37, 42]     },  {     when: 'Datum: Zaterdag 29-08-2009',       picks:[1, 11, 31, 39, 42, 43]     } ];    var buildPlayers = function(){     var cont = $("#players"), table = $('<table></table>');     for( player in players ){     if ( players.hasOwnProperty( player ) ) {         var tr = $('<tr><th>' + player + '</th></tr>').appendTo(table),             len = players[player].length;          for ( var i = 0; i < len; i++) {             var td = $('<td/>')       td.addClass("loss")     .addClass("pick_" + players[player][i]) // add the class to the td       .text( players[player][i] )     .appendTo ( tr );      }       var winning = $('<td>').addClass('winning-col').appendTo(tr);          cont.append( table );     }     } };   var buildDraws = function(){     var cont = $("#draws");     for(var i = 0; i < draws.length; i++){     var html = ["<div class='draw'>","<h4 class='drawNum'>Trekking "+(i+1)+"</h3></p>","<div class='date'>"+draws[i].when+"</div>","<ol class='picks'>"];      for(var j = 0; j < draws[i].picks.length; j++) {         var img = '<img src="http://www.lotto.nl/static/images/ballen/lotto/l'         + draws[i].picks[j]         + '.jpg" alt="'         + draws[i].picks[j]         + '" />';         html.push("<li>"+img+"</li>");         showWin(draws[i].picks[j]);     }        html.push("</ol>","</div>");     cont.append(html.join(""));     } };  var showWin = function(winNum){     $(".pick_"+winNum).removeClass("loss").addClass("win"); };   $(function(){     buildPlayers();     buildDraws();     function countWinning() {     $('#players table tr').each(function() {         var winning = $('td.win', this), total = 0;         winning.each(function(i,num) {         total+= parseInt( $(this).text(), 10);         });        $(".winning-col", this)   .text($("td.win", this).length)   .addClass("hilighted");      });     }     countWinning(); });   })();  </script> 
like image 248
Chris Avatar asked Aug 30 '09 11:08

Chris


People also ask

How do you create a new row in JavaScript?

The insertRow() method creates an empty <tr> element and adds it to a table. The insertRow() method inserts the new row(s) at the specified index in the table. Note: A <tr> element must contain one or more <th> or <td> elements. Tip: Use the deleteRow() method to remove a row.

How can we append the first row in a table using jQuery?

append() / prepend() to Add Table Row in jQuery. To add a row in the table body using jQuery, we can use DOM inside insertion methods of append() or prepend() that adds an element to the suggested element's start or end. Here we will select the tbody element of table element with id="test" to add a row after it.


1 Answers

You can also do that using insertBefore:

$('<tr><td>Stuff</td></tr>').insertBefore('table > tbody > tr:first'); 

or with before:

$('table > tbody > tr:first').before('<tr><td>Stuff</td></tr>'); 

or with prependTo:

$("<tr><td>prependTo</td></tr>").prependTo("table > tbody"); 
like image 141
karim79 Avatar answered Oct 06 '22 01:10

karim79