-4

I have to generate a sequence with a difference of 9. starting from 7. sequence should have 20 terms. I have tested my for loop and its working fine. Question is, how do I embedd this for loop in a table in javascript? Just want the table to have one column (sequence in for loop)

<script type="text/javascript">
 var i;
 var p;

 for (i = 0; i < 20; i++) {
   p = i * 9 + 7;
   document.writeln(p + "<br>");
 }
</script>
Matthew Herbst
  • 29,477
  • 23
  • 85
  • 128

3 Answers3

0

Use a loop to create the relevant HTML element objects and set their values within your Javascript:

var table = document.createElement("table");

var i;
var p;

for (i = 0; i < 20; i++) {
  var row = document.createElement("tr");
  var row_data = document.createElement("td");
  p = i * 9 + 7;
  row_data.innerHTML = p;
  row_data.style = "border: 1px solid black";
  row.appendChild(row_data);
  table.appendChild(row);
}

document.body.appendChild(table);
esqew
  • 42,425
  • 27
  • 92
  • 132
0

Declare a table in html and give it an id

<table id="table"></table>

Then, get that table in your javascript and add one row, column in each iteration

<script type="text/javascript">
 var i;
 var p;
 var table = document.getElementById("table");
 for (i = 0; i < 20; i++) {
   p = i * 9 + 7;
   table.innerHTML = `${table.innerHTML}<tr><td>${p}</td></tr>`;
 }
</script>
Umair Abid
  • 1,453
  • 2
  • 18
  • 35
-2

let table = '<table><tbody>';

for (let i = 0; i < 20; i++) {
  table += (`<tr><td>${i}</td><td>${i * 9 + 7}</td></tr>`);
}

table += '</tbody></table>';

document.body.innerHTML = table;

Array.from(document.getElementsByTagName('td'))
  .forEach((td) => {
    td.style.border = '1px solid green';
    td.style.width = '40px';
    td.style.textAlign = 'right';
    td.style.paddingRight = '20px';
  });
  
Array.from(document.getElementsByTagName('table'))
  .forEach((table) => {
    table.style.border = '2px solid';
  });
Piterden
  • 771
  • 5
  • 17