为什么javascript不能同时执行2个操作?

时间:2017-06-13 21:11:48

标签: javascript javascript-events frontend

为什么javascript不能同时执行2个操作?即行删除和行插入。

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;

} 

按钮点击后执行上述功能。它工作但我必须按2次按钮,即第一次删除行,然后添加一个新行,但我希望它删除并添加'只需点击一下。

2 个答案:

答案 0 :(得分:1)

你应该替换它:

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

用这个:

table.deleteRow(rowCount-1);

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

答案 1 :(得分:1)

您需要做的一切,在从表

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

试试这个:

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

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