【问题标题】:Remove a row from a table with JavaScript使用 JavaScript 从表中删除一行
【发布时间】:2011-07-07 15:08:28
【问题描述】:

我在用 JavaScript 删除一行时遇到问题,因为它没有类也没有 ID,我不能用 CSS 引用它。

我要删除的行以文本开头:Post

希望有人能帮忙

【问题讨论】:

  • 您能否发布您的代码,或者更好的是,在 JsFiddle 上为我们制作一个演示?
  • 您需要提供更多信息。此外,您的主题说“Java”是不正确的。另一个问题是你想如何删除它。某处有输入按钮吗?你点击链接吗?你有你想做的代码吗?
  • 您的问题非常模糊,我们无法理解。另外,jQuery 解决方案是可以接受还是不能使用?

标签: javascript css-selectors html-table


【解决方案1】:

这样做:

var rows = document.getElementById('theTable').rows;

for (var i = 0; i < rows.length; i++) {
   if ( rows[i].firstElementChild.textContent.trim().split(' ')[0] === 'Post' ) {
       rows[i].parentNode.removeChild(rows[i]);
   }  
}

注意:trim() 以及在 IE8 中不起作用的东西。您可以将其省略,但您必须确保在“Post”一词之前没有前导空格。

现场演示: http://jsfiddle.net/simevidas/xn6U8/


更新:

var rows = document.getElementsByClassName('basket')[0].rows;

for (var i = 0; i < rows.length; i++) {
   if ( rows[i].cells[0].textContent.trim().split(' ')[0] === 'Post' ) {
       rows[i].parentNode.removeChild(rows[i]);
   }  
}

现场演示: http://jsfiddle.net/simevidas/A73PK/2/

【讨论】:

  • 这也是正确的方式,split(' ')[0] === 'Post' 检查开头
  • 嗯!我无法让它工作 - 这是整个表格 0,00 DKK
      td>
    Post Danmark eller GLS takster 0,00%
    Faktura(总 m/moms) 0,00% 0,00 丹麦克朗
  • @Pete 在我的演示中,表格有一个 ID,我使用 getElementById 来选择它。您的表没有 ID。您必须定义一个 ID,或者使用其他方法来选择表格元素。但我的代码适用于你的桌子。见这里:jsfiddle.net/simevidas/A73PK
  • @Šime:我要注意的是,在 IE9 之前的 IE 中不支持 firstElementChildtextContent。对于firstElementChild,您可以改用.cells[0] 来获取行中的第一个单元格。
  • 但问题是,我不能更改代码,当它有 class=时我不能删除表=
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
相关资源
最近更新 更多