用户将一些文本输入表单,并将其存储在变量“ userInput”中
我有id="myTable"的html表。
我想使用Javascript遍历表并删除行中第三列的值不等于userInput的所有行,但是由于某些原因我的代码无法正常工作:

var theTable = document.getElementById("myTable");
for(int x = 0; x < theTable.rows.length; x++){
     if(theTable.rows[x].cells[2].innerHTML != userInput){
          theTable.deleteRow(x);
      }
}

最佳答案

我看到的与此代码有关的第一个问题是,您正在向前移动循环中删除行,这意味着如果删除第3行,则第4行现在将是3,依此类推(如果仅删除单行而不是一个好习惯,这不是问题。 )..您应该按相反的顺序删除循环。

另外,您可能应该比较innerTextinnerHTML,我怀疑用户输入的是HTML。

for(var x = theTable.rows.length; x > 0 ; x--){
  if(theTable.rows[x - 1].cells[2].innerText!= userInput){
      theTable.deleteRow(x -1);
  }
}

关于javascript - 使用Javascript动态删除行。我的代码有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28987470/

10-10 01:30