简体   繁体   English

javascript删除动态生成tr td的最后一个孩子

[英]javascript remove last-child in dynamically generating tr td

I have a function written in javascript that displays records of data once users upload excel file. 我有一个用javascript编写的函数,一旦用户上传excel文件,它就会显示数据记录。

Here is my HTML 这是我的HTML

<table id="result" class="table table-striped table-responsive"></table>

and my Javascript for displaying uploaded data from excel 和我的Javascript,用于显示来自excel的上传数据

// draw HTML table based on sheet data
    var sheet = parseCSV.getSheet();
    var table = document.getElementById('result');
    var btnSave = document.getElementById('btnSave');
    table.innerHTML = "";
    var wrapper0 = $("#column0");
    var divMapping = document.getElementById('mapping');
    var rowArray = [];
    var columnArray = [];

    $('#table').show();

    sheet.forEach(function (el, i) {

        var row = document.createElement('tr');
        var button = document.createElement('td');
        el.forEach(function (el, i) {
            var cell = document.createElement('td');
            cell.innerHTML = el.value;

            row.appendChild(cell);

        });

        button.innerHTML = "<button class='btn btn-default'>View</button>";

        row.appendChild(button);

        table.appendChild(row);

    });

and here is a screenshot of the output I am getting. 这是我得到的输出的屏幕截图。

图片

I don't know why it generates extra <tr> on the bottom and on the headers . 我不知道为什么它在底部和headers上生成额外的<tr>

For removing button from header you can simply escape the button adding part in the loop. 要从标题中删除按钮,您可以简单地在循环中跳过按钮添加部分。

    sheet.forEach(function (el, i) {

                var row = document.createElement('tr');
                var button = document.createElement('td');
                el.forEach(function (el, i) {
                    var cell = document.createElement('td');
                    cell.innerHTML = el.value;

                    row.appendChild(cell);

                });
              if(i != 0){
               button.innerHTML = "<button class='btn btn-
                                default'>View</button>";

               row.appendChild(button);
              }

            table.appendChild(row);

        });

sheet may be returning one extra row with iteration, sheet可能会在迭代中返回额外的row

Just add this check before adding the view button 只需添加此检查,然后添加view按钮

if ( row.children && row.children )
{
   row.appendChild(button); 
}

This will ensure that button is added only if other cells have been pushed to the row already. 这将确保仅在其他单元格已经被推到该row时才添加按钮。

and on the headers. 和标题上。

Add another check to avoid adding to headers 添加另一项检查以避免添加到标题

if ( row.children && row.children && i ) //check if i != 0
{
   row.appendChild(button); 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM