Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery append two tds' in one tr

How to use jQuery to append only two tds' in a single tr ..

I have a table .. I want to max how many tds per row.. something like this

if($("td").length) == 0){ // get the count of existing tds
 $("table").append("<tr>");
}
   $("table").append("<td>Something</td>");

if($("td").length) == 2){ // if it hit two tds' in this tr then close the tag
 $("table").append("</tr>");
} // this is not a valid example, just trying to deliver my point

it's not a loop, it appends on click, so let's say I clicked 5 times, I should get this

<tr>
 <td>Someting</td>
 <td>Someting</td>
</tr>
<tr>
 <td>Someting</td>
 <td>Someting</td>
</tr>
<tr>
 <td>Someting</td>
</tr>
like image 772
Osa Avatar asked Jan 15 '23 09:01

Osa


2 Answers

Let's try this:

var max = 2
var tr = $("table tr:last");
if(!tr.length || tr.find("td").length >= max)
    $("table").append("<tr>");
$("table tr:last").append("<td>hi</td>");

http://jsfiddle.net/5yLrE/

like image 157
georg Avatar answered Jan 25 '23 21:01

georg


If $("td").length is even, create a new row, if not, append to the last row:

var $tds = $('table td');
var $target = $tds.last().parent();
if($tds.length % 2 === 0){
    $target = $('<tr />').appendTo('table > tbody');
}
$target.append("<td>Something</td>");
like image 35
Felix Kling Avatar answered Jan 25 '23 20:01

Felix Kling