jQuery get <td> text from <tr> id, <td> is dynamically generated so I don't know how may or if any

StackOverflow https://stackoverflow.com/questions/1105759

  •  12-09-2019
  •  | 
  •  

Question

I have a jQuery function already to perform the task I need but is there a way to loop through the <td> cells of a specific <tr> with the id="generated_rows"

<table>
<tr id="generated_rows">
<td class="row_class" id="row_id_1">text 1</td>
<td class="row_class" id="row_id_2">text 2</td>
<td class="row_class" id="row_id_3">text 3</td>
<td class="row_class" id="row_id_4">text 4</td>
<td class="row_class" id="row_id_5">text 5</td>
</tr>
</table>

Need this:

<table>
<tr id="generated_rows">
<td class="row_class" id="row_id_1">text 1.00</td>
<td class="row_class" id="row_id_2">text 2.00</td>
<td class="row_class" id="row_id_3">text 3.00</td>
<td class="row_class" id="row_id_4">text 4.00</td>
<td class="row_class" id="row_id_5">text 5.00</td>
</tr>
</table>

FUNCTION BELOW NOW WORKS!,

// Check for whole numbers and append .00
$('#generated_rows td.row_class').each(function() {
     var x = Number($(this).text()).toFixed(2);
     $(this).text(x);
});
Was it helpful?

Solution

You are close, just need to use td instead of tr in your selector. Here's my version to append ".00" at the end of cell's text (assuming all numbers are not already in fixed format of course)

$("#generated_rows > td.row_class").each(function() { 
    var $this = $(this);
    var splitText = $this.text().split(' ');
    splitText[1] = Number(splitText[1]).toFixed(2);
    $this.text(splitText.join(' '));
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top