How to add rows to a table using JavaScript DOM?

We will learn how to add a row to a table using JavaScript DOM. To achieve this, we have multiple methods. Some of them are the following.

  • Using the insertRow() method

  • By creating the new Element

Using the insertRow() Method

The insertRow() method is used to insert a new row at a specified position in the table. It creates a new <tr> element and inserts it into the table. This takes a number as a parameter that specifies the position of the table. If we do not pass any parameter then it inserts the row at the starting of the table. If you want to insert the row in the last of the table, then pass -1 as the parameter.

Syntax

table.insertRow(index)

Return value ? The <tr> element which was inserted.

As we know a proper table has not just table rows (<tr>), but also table data cells (<td>). To insert cells inside a row we use the insertCell() method. It creates a <td> element inside the table row. It takes a number as a parameter that specifies the index of the cell inside that row.

Syntax

Below is the syntax to insert cell ?

row.insertCell(index)

Return value ? The <td> element which was inserted.

Steps to add a row to the table

  • Get the data table element.

  • Create a row using the insertRow() method and insert it into the table.

  • Create new cell(s) using the insertCell() method and insert them into the row you created.

  • Add data to the newly created cells.

Example

In this example, we have a table that contains the name of the students and their ages. We are adding a new student at the end of the table.

<!DOCTYPE html>
<html>
<head>
   <title> Example- add rows to a table using JavaScript DOM </title>
   <style>
      table,
      td,
      th {
         border: 1px solid black;
      }
   </style>
</head>
<body>
   <h2> Adding rows to a table using JavaScript DOM </h2>
   <p> Click on the button to add the row to the table </p>
   <button id="btn" onclick="addRow()"> Click me </button>
   <br><br>
   <table id="myTable">
      <thead>
         <th> Name </th>
         <th> Age </th>
         <th> City </th>
      </thead>
      <tbody>
         <tr>
            <td> Alex </td>
            <td> 20 </td>
            <td> New York </td>
         </tr>
         <tr>
            <td> Tim </td>
            <td> 18 </td>
            <td> Boston </td>
         </tr>
         <tr>
            <td> Mark </td>
            <td> 23 </td>
            <td> San Diego </td>
         </tr>
      </tbody>
   </table>
</body>
<script>
   function addRow() {
      // Get the table element in which you want to add row
      let table = document.getElementById("myTable");
   
      // Create a row using the insertRow() method and
      // specify the index where you want to add the row
      let row = table.insertRow(-1); // We are adding at the end
   
      // Create table cells
      let c1 = row.insertCell(0);
      let c2 = row.insertCell(1);
      let c3 = row.insertCell(2);
   
      // Add data to c1 and c2
      c1.innerText = "Elon"
      c2.innerText = 45
      c3.innerText = "Houston"
   }
</script>
</html>

By Creating New Elements

In this method, we will create new rows and columns by using the document.createElement() method. This approach gives more control over the element creation process and is useful when you need to add specific attributes to elements.

Approach

Here are the steps to add a row to a table by creating elements:

  • Get the table body element in which you want to add a row

  • Create row element using createElement()

  • Create cells and insert data into cells

  • Append cells to the row

  • Append row to table body

Example

In this example, we create a new row with four columns and append it to the table body.

<html>
<head>
   <title> Example- add rows to a table using JavaScript DOM </title>
   <style>
      table,
      td,
      th {
         border: 1px solid black;
      }
   </style>
</head>

<body>
   <h2> Adding rows to a table using JavaScript DOM </h2>
   <p>Click on the button to add the row to the table </p>
   <button id="btn" onclick="addRow()"> Click me </button>
   <br><br>
   <table id="myTable">
      <thead>
         <th> Name </th>
         <th> Age </th>
         <th> City </th>
         <th> Course </th>
      </thead>
      <tbody id="tableBody">
         <tr>
            <td> Alex </td>
            <td> 20 </td>
            <td> New York </td>
            <td> Java </td>
         </tr>
         <tr>
            <td> Tim </td>
            <td> 18 </td>
            <td> Boston </td>
            <td> Python </td>
         </tr>
         <tr>
            <td> Mark </td>
            <td> 23 </td>
            <td> San Diego </td>
            <td> JavaScript </td>
         </tr>
      </tbody>
   </table>
</body>
<script>
   function addRow() {
      // Get the table body element in which you want to add row
      let table = document.getElementById("tableBody");
   
      // Create row element
      let row = document.createElement("tr")
      
      // Create cells
      let c1 = document.createElement("td")
      let c2 = document.createElement("td")
      let c3 = document.createElement("td")
      let c4 = document.createElement("td")
      
      // Insert data to cells
      c1.innerText = "Elon"
      c2.innerText = "42"
      c3.innerText = "Houston"
      c4.innerText = "C++"
      
      // Append cells to row
      row.appendChild(c1);
      row.appendChild(c2);
      row.appendChild(c3);
      row.appendChild(c4);
      
      // Append row to table body
      table.appendChild(row)
   }
</script>
</html>

Comparison

Method Code Complexity Performance Flexibility
insertRow() Simple Faster Limited
createElement() More complex Slightly slower High - can add attributes

Conclusion

Use insertRow() for simple table operations and createElement() when you need more control over the element creation. Both methods effectively add rows to tables dynamically using JavaScript DOM manipulation.

Updated on: 2026-03-15T23:18:59+05:30

48K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements