Solution 1 :

You can try this

$( document ).ready(function() {
   var firstTr = $("tr:first-child").attr("id");  
    var rows =$("#"+firstTr ).nextAll();
$("tr:first-child td:last-child").append(rows);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table style="border: 1px solid black;">
<tbody >
<tr id="unique_id_1">
<td class="field_1"><span class="col-1">Item</span></td>
<td class="field_2">No 1</td>
<td class="field_3"></td>
</tr>
<tr id="unique_id_2">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 1</td>
</tr>
<tr id="unique_id_3">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 2</td>
</tr>
<tr id="unique_id_4">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 3</td>
</tr>
</tbody>
</table>

It will handle any length of table and if it solves your problem don’t forget to vote and accept the answer

Problem :

I’m trying to change the format of a predefined table. I do not have access to the HTML, only CSS and JS.
Basically what I want is to move every tr except the first into the first tr’s td with class="field_3".

<table style="border: 1px solid black;">
<tbody >
<tr id="unique_id_1">
<td class="field_1"><span class="col-1">Item</span></td>
<td class="field_2">No 1</td>
<td class="field_3"></td>
</tr>
<tr id="unique_id_2">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 1</td>
</tr>
<tr id="unique_id_3">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 2</td>
</tr>
<tr id="unique_id_4">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 3</td>
</tr>
</tbody>
</table>

I have managed to make a working script by targeting the tr’s id directly:

var rows = $("#unique_id_2, #unique_id_3, #unique_id_4");
$("#unique_id_1 > td.field_3").append(rows);

But I need a way to select them programmatically as their id are being generated uniquely.

After searching and trying for days I have not managed to wrap my head around this.

So any insight to help solve this would be greatly appreciated.

Edit: Added another snippet with more rows which adds to the complexity of the solution.

<table style="border: 1px solid black;">
<tbody >
<tr class="group">
<td></td>
</tr>
<tr id="unique_id_1">
<td class="field_1"><span class="col-1">Item</span></td>
<td class="field_2">No 1</td>
<td class="field_3"></td>
</tr>
<tr id="unique_id_2">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 1</td>
</tr>
<tr id="unique_id_3">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 2</td>
</tr>
<tr id="unique_id_4">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 3</td>
</tr>

<tr class="group">
<td></td>
</tr>
<tr id="unique_id_5">
<td class="field_1"><span class="col-1">Item</span></td>
<td class="field_2">No 2</td>
<td class="field_3"></td>
</tr>
<tr id="unique_id_6">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 1</td>
</tr>
<tr id="unique_id_7">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 2</td>
</tr>
<tr id="unique_id_8">
<td class="field_1"></td>
<td class="field_2"></td>
<td class="field_3">Action 3</td>
</tr>

</tbody>
</table>

Regards,
Espen

Comments

Comment posted by imgur.com/a/2F4Zno4

@Dimitri Well, yes I guess. I want the table to format like this:

Comment posted by Johannes

Apart from the JS: If you nest

Comment posted by ezprado

Thanks alot, Sushrut! This really helped and I now have a better understanding of selecting elements. However the real life table is a little more complicated. I thought I would be able to work the rest out through the answer I got but unfortunately I was not. I’ve edited/added to my original question. The challenge now is to execute the move under each of the rows with class=”group”. Is there a way?

Comment posted by Sushrut Singh Sisodiya

well for this we need to change the approach a little-bit but first let me ask you a question :- Will there be defined 4 tr for each group or the number may vary in different group ?

Comment posted by ezprado

Thanks for taking your time. The number of rows in each group varies. The minimum is 1 row (the main row). In that case no rows needs to be moved.

By