0

i have table row inside a foreach looping that are have some columns with the same class, my question is how can i format each data in that column to be like ###,### (format number using comma) in javascript?

this is a sample for my table structure:

    <tbody id="binder">
<?php foreach () { ?>        
        <tr id="data">
            <td class="sum">400000</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>

            <td class="sum">500000</td>
            <td class="sum">500000</td>
            <td class="sum">0</td>
            <td class="sum">0</td>
        </tr>
<?php } ?>
    </tbody>
Kotomono
  • 78
  • 1
  • 10

1 Answers1

1

You can get all the elements with the specific class name and then format its innerHTML. below is a working snippet.

var allTds = document.getElementsByClassName("sum");

for (var i = 0; i < allTds.length; i++) {

  allTds[i].innerHTML = allTds[i].innerHTML.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
td{
   border:1px solid;
  }
<table>
  <tbody id="binder">
    <tr id="data">
      <td class="sum">400000</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>

      <td class="sum">500000</td>
      <td class="sum">500000</td>
      <td class="sum">0</td>
      <td class="sum">0</td>
    </tr>
  </tbody>
</table>

The regex reference taken from this answer. https://stackoverflow.com/a/2901298/2592042

Community
  • 1
  • 1
Rajshekar Reddy
  • 18,647
  • 3
  • 40
  • 59