使用Javascript动态删除行。我的代码怎么了?

使用Javascript动态删除行。我的代码怎么了?,javascript,html,html-table,Javascript,Html,Html Table,用户将一些文本输入表单,并将其存储在变量“userInput”中 我有一个id为myTable的html表。 我想使用Javascript遍历该表,并删除行中第3列的值不等于userInput的所有行,但我的代码由于某种原因无法工作: var theTable = document.getElementById("myTable"); for(int x = 0; x < theTable.rows.length; x++){ if(theTable.rows[x].cells[

用户将一些文本输入表单,并将其存储在变量“userInput”中 我有一个id为myTable的html表。 我想使用Javascript遍历该表,并删除行中第3列的值不等于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);
      }
}

尝试记录输出:

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

尝试记录输出:

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

我看到的这段代码的第一个问题是,您正在向前移动的循环中删除行,这意味着如果您删除第3行,那么第4行现在将是第3行,等等,如果只删除一行而不是一个好的做法,那么这不是一个问题。。您应该在逆序循环中删除

另外,您可能应该比较innerText和innerHTML,我怀疑用户输入的是HTML。
我看到的这段代码的第一个问题是,您正在向前移动的循环中删除行,这意味着如果您删除第3行,那么第4行现在将是第3行,等等,如果只删除一行而不是一个好的做法,那么这不是一个问题。。您应该在逆序循环中删除

另外,您可能应该比较innerText和innerHTML,我怀疑用户输入的是HTML。 在for循环中,需要将int x更改为var x才能在javascript中有效。 为了确保每一行都被删除,如果一行没有被删除,那么只计算迭代器x。请参阅else语句 var userInput='留住我'; var theTable=document.getElementByIdmyTable; forvar x=0;x是否也可以格式化单元格的内容?例如asdf!=ASDFALL单元格的内容是否可以格式化?例如asdf!=asdf