javascript - 如何在表格的某个位置插入新行

标签 javascript jquery html-table

我有带表格的页面。 在 tbody 中,我通过 angularjs 显示数据。在 thead 中,我有与 tbody 相同的行,但它是空的,当我填写输入字段并在某处单击(失去焦点)时,一个行添加到我的表 (thead)。我需要在填充的行上制作一些标志,例如 - rowAdded = true,因为如果没有它,我会点击一行的输入并添加行。还有一个问题是行添加到 table 的末尾。 这一切都适用于这个脚本:

var tbody = $('.table-timesheet thead');
tbody.on('blur', ':text', function () {
    var tr = $(this).closest('tr'),
        notEmpty = $(':text', tr).filter(function () {
            return $.trim($(this).val()) != '';
        }).length;
    if (notEmpty) {
        $('.note-input').css('width', '88%').css('float', 'left');
        $('.timesheet-delete-button').css('display', 'block');
        //tr.clone(true).appendTo(tbody).find(':text').val('');
        insRow();
    }
});

function deleteRow(row) {
    var i = row.parentNode.parentNode.rowIndex;
    document.getElementById('table-body').deleteRow(i);
}


function insRow() {
    var table = document.getElementById('table-body');
    var newRow = table.rows[1].cloneNode(true);
    var len = table.rows.length;
    newRow.cells[0].innerHTML = len;

    var inp1 = newRow.cells[1].getElementsByTagName('input')[0];
    inp1.id += len;
    inp1.value = '';
    var inp2 = newRow.cells[2].getElementsByTagName('input')[0];
    inp2.id += len;
    inp2.value = '';
    table.appendChild(newRow);
}

有我在 plunker 中的例子: http://plnkr.co/edit/rcnwv0Ru8Hmy7Jrf9b1C?p=preview

最佳答案

这是你要找的吗

function insRow(ind){
  var table = document.getElementById('table-body');
  var newRow = table.rows[1].cloneNode(true);
  var len = table.rows.length;
  newRow.cells[0].innerHTML = ind!==undefined ? ind : len;
  if(ind!==undefined)
       $(table).find('tr:eq('+ind+')').before(newRow);
  else table.appendChild(newRow);
}

insRow(2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table-body">
  <tbody>
    <tr><td>1</td></tr>
    <tr><td>2</td></tr>
    <tr><td>3</td></tr>
  </tbody>
</table>

关于javascript - 如何在表格的某个位置插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941228/

相关文章:

Javascript 以多行方式写入文本文件

javascript - 如何识别 <select> 中的特定项目并在 jquery 中的每一行添加删除按钮

python - 我无法循环遍历 Django 模板中的字典

mysql - 使用jsp中的按钮检索id和删除查询

javascript - 直接客户端到客户端的消息

jquery - 我怎样才能强制关闭悬停状态?

javascript - 从nodejs中的url读取图像

c# - 模型绑定(bind)表单中的可编辑表字段(Razor Pages)

javascript - 验证指令代码在 ng-repeat 中的每个项目上执行

javascript - 在 Acrobat Pro 中使用 javascript 从 PDF 中提取页面