Как вставить строку в тело таблицы HTML в Javascript?
у меня есть таблица HTML с верхним и нижним колонтитулами:
<table id="myTable">
<thead>
<tr>
<th>My Header</th>
</tr>
</thead>
<tbody>
<tr>
<td>aaaaa</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>My footer</td>
</tr>
<tfoot>
</table>
Я пытаюсь добавить строку tbody
следующим образом:
myTable.insertRow(myTable.rows.length - 1);
но строка добавляется в тег .
как вставить tbody
?
9 ответов:
Если вы хотите добавить строку в
tbody
, получить ссылку на него и добавить его там.var tableRef = document.getElementById('myTable').getElementsByTagName('tbody')[0]; // Insert a row in the table at the last row var newRow = tableRef.insertRow(tableRef.rows.length); // Insert a cell in the row at index 0 var newCell = newRow.insertCell(0); // Append a text node to the cell var newText = document.createTextNode('New row'); newCell.appendChild(newText);
рабочая демо здесь. Также вы можете проверить документацию
insertRow
здесь.
вы можете попробовать следующий фрагмент с помощью Jquery.
$(table).find('tbody').append( "<tr><td>aaaa</td></tr>" );
вы близки, просто добавьте строку в
tbody
вместоtable
:myTbody.insertRow();
просто получить ссылку на
tBody
(myTbody
) перед использованием. Обратите внимание, что вам не нужно передавать последнюю позицию в таблице, она автоматически позиционируется в конце при опущении аргумента.
Я думаю, что этот скрипт именно то, что вам нужно
var t = document.getElementById('myTable'); var r =document.createElement('TR'); t.tBodies[0].appendChild(r)
Я пробовал это,
это работает для меня
var table=document.getElementById("myTable"); var row=table.insertRow(myTable.rows.length-2); var cell1=row.insertCell(0);
добавить строки
<html> <script> function addRow(){ var table = document.getElementById('myTable'); //var row = document.getElementById("myTable"); var x = table.insertRow(0); var e =table.rows.length-1; var l =table.rows[e].cells.length; //x.innerHTML = " "; for (var c =0, m=l; c < m; c++) { table.rows[0].insertCell(c); table.rows[0].cells[c].innerHTML = " "; } } function addColumn(){ var table = document.getElementById('myTable'); for (var r = 0, n = table.rows.length; r < n; r++) { table.rows[r].insertCell(0); table.rows[r].cells[0].innerHTML = " " ; } } function deleteRow() { document.getElementById("myTable").deleteRow(0); } function deleteColumn() { // var row = document.getElementById("myRow"); var table = document.getElementById('myTable'); for (var r = 0, n = table.rows.length; r < n; r++) { table.rows[r].deleteCell(0);//var table handle } } </script> <body> <input type="button" value="row +" onClick="addRow()" border=0 style='cursor:hand'> <input type="button" value="row -" onClick='deleteRow()' border=0 style='cursor:hand'> <input type="button" value="column +" onClick="addColumn()" border=0 style='cursor:hand'> <input type="button" value="column -" onClick='deleteColumn()' border=0 style='cursor:hand'> <table id='myTable' border=1 cellpadding=0 cellspacing=0> <tr id='myRow'> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table> </body> </html>
и клеток
Основные Принципы:
Это должно добавить содержимое в формате html и показать новую добавленную строку.
var myHtmlContent = "<h3>hello</h3>" var tableRef = document.getElementById('myTable').getElementsByTagName('tbody')[0]; var newRow = tableRef.insertRow(tableRef.rows.length); newRow.innerHTML = myHtmlContent;
Вы можете использовать следующий пример
<table id="purches"> <thead> <tr> <th>ID</th> <th>Transaction Date</th> <th>Category</th> <th>Transaction Amount</th> <th>Offer</th> </tr> </thead> <!-- <tr th:each="person : ${list}" > <td><li th:each="person : ${list}" th:text="|${person.description}|"></li></td> <td><li th:each="person : ${list}" th:text="|${person.price}|"></li></td> <td><li th:each="person : ${list}" th:text="|${person.available}|"></li></td> <td><li th:each="person : ${list}" th:text="|${person.from}|"></li></td> </tr> --> <tbody id="feedback"> </tbody> </table>
JS file:
$.ajax({ type: "POST", contentType: "application/json", url: "/search", data: JSON.stringify(search), dataType: 'json', cache: false, timeout: 600000, success: function (data) { // var json = "<h4>Ajax Response</h4><pre>" + JSON.stringify(data, null, 4) + "</pre>"; // $('#feedback').html(json); // console.log("SUCCESS : ", data); //$("#btn-search").prop("disabled", false); for (var i = 0; i < data.length; i++) { // $("#feedback").append('<tr><td>' + data[i].accountNumber + '</td><td>' + data[i].category + '</td><td>' + data[i].ssn +'</td></tr>'); $('#feedback').append('<tr><td>' + data[i].accountNumber + '</td><td>' + data[i].category + '</td><td>' + data[i].ssn +'</td><td>' + data[i].ssn +'</td><td>' + data[i].ssn +'</td></tr>'); alert(data[i].accountNumber) } }, error: function (e) { var json = "<h4>Ajax Response</h4><pre>" + e.responseText + "</pre>"; $('#feedback').html(json); console.log("ERROR : ", e); $("#btn-search").prop("disabled", false); } });