为什么 Javascript 不同时执行两个操作?

Why doesn't Javascript perform two operations simultaneously?

为什么 Javascript 不同时执行两个操作?即行删除和行插入。

var tookSum= false;

function alterTable()
{ 
    
    //Textboxes code
    
    var tBoxCompany= document.getElementById("txtboxCompany");
    var tBoxAmount= document.getElementById("txtboxAmount");
    
     
    
    //table code
    
    var table= document.getElementById("tableNetWorths");
    
    var rowCount= table.rows.length;
    
    if(tookSum == true)
    {
        table.deleteRow(rowCount-1);
        tookSum= false;
    }
    
    var row= table.insertRow(rowCount);
    
    var Cell1= row.insertCell(0);
    var Cell2= row.insertCell(1);
    
    Cell1.innerHTML= tBoxCompany.value;
    Cell2.innerHTML= tBoxAmount.value;
  
} 

上面给出的函数是在点击按钮时执行的。它可以工作,但我必须按两次按钮,即先删除行然后添加新行,但我希望它只需单击一下即可 'delete and add'。

你应该替换这个:

if(tookSum == true)
{
    table.deleteRow(rowCount-1);
    tookSum= false;
}

有了这个:

table.deleteRow(rowCount-1);

尽管 您的代码 并不清楚这一点,但 tookSum 的值应该 在第一次点击。因此,在第一次单击时,一行被删除并且 tookSum 值更新为 false。因此,您第二次单击 none 行将被删除并插入一个新行。我做这个假设是基于你声称是真的,当你点击你提到的按钮时,你需要点击和功能 alterTable 执行。

所有你需要做的,在从 table

中删除行之前检查是否 rowCount > 0

试试这个:

if(rowCount > 0)
{
    table.deleteRow(rowCount-1);
}

在前面的回答中,如果 table 中没有行,那么 table.deleteRow(rowCount-1) 将不起作用,因此检查行数以确认 table 中有可用的行删除。