【问题标题】:How can I delete specific rows from a table?如何从表中删除特定行?
【发布时间】:2013-03-20 21:15:15
【问题描述】:

我有一个行数为n 的表。 n 的值每分钟更改/更新。 每行的第一个<td> 要么包含一些文本,要么为空白。 我想删除/删除除第一行和第一个单元格包含文本'xyz' 的行之外的所有行。 那么,我将如何做到这一点? 这个table 元素存储在变量parentTable 中。

我对 javascript 和编程有点陌生。任何帮助,将不胜感激。谢谢。

我只用第二行测试了它,但即使单元格中的文本不是xyz,也没有发生任何事情。

if(parentNode.childNodes[1].innerText !== "xyz")
parentTable.deleteRow[1];

我如何循环每一行并做到这一点?

编辑:每行第一个单元格的 HTML。

<td class=wbwhite align=center width=40 style="border-top: none; border-left:none; border-right:none;">
&nbsp;
<a href="www.kasdjfkasd.sadsdk.comi" class=pi>xyz</a>
&nbsp;
</td>

【问题讨论】:

  • 你的代码在哪里?你试过什么?

标签: javascript


【解决方案1】:

试试这个:

    var table = parentTable;
    var rowCount = table.rows.length;

    for ( var i = 1; i < rowCount; i++ )
    {
        var row = table.rows[i];
        var val=  row.cells[0].childNodes[0].innerHTML.toString();

        if ( 'xyz' != val )
        {
            table.deleteRow( i );

            rowCount--;
            i--;
        }
    }

【讨论】:

  • xyz.......你看到HTML了吗?我可以使用 row.cells[0].childNodes[0].innerHTML;代替?
  • 我试过了,所有行都被删除了:(它不应该是innerText吗?
  • 还是不行。正在删除所有行。得到错误“...没有方法'文本'”
  • 我试过 row.cells[0].childNodes[0].innerHTML 并且它返回 xyz !!可能你必须使用 row.cells[0].childNodes[0].innerHTML.toString()
【解决方案2】:

使用此代码(纯 JavaScript):

(假设表的 id = tableId)。

var all = document.querySelectorAll('#tableId > tbody > tr');

// i = 1 not i = 0 to keep the first row.
for (var i = 1; i < all.length; i++) {
    var td = all[i].querySelectorAll('td')[0];
    if ( td.textContent != "xyz" ) {
        all[i].parentNode.removeChild(all[i]);
    }
}

【讨论】:

    【解决方案3】:

    你可以试试这个

    var allRows = parentTable.getElementsByTagName('TR');
    
    for(var i=1; i<allRows.length;)
    {
        var tr = allRows[i];
        var firstTd = tr.getElementsByTagName('TD')[0];
        if(firstTd.innerHTML !== 'xyz')
        {
            tr.parentNode.removeChild(tr);
        }else{
            i++;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      相关资源
      最近更新 更多