为什么';Javascript不能同时执行两个操作吗?
为什么Javascript不能同时执行两个操作?i、 e.行删除和行插入为什么';Javascript不能同时执行两个操作吗?,javascript,frontend,dom-events,Javascript,Frontend,Dom Events,为什么Javascript不能同时执行两个操作?i、 e.行删除和行插入 var tookSum= false; function alterTable() { //Textboxes code var tBoxCompany= document.getElementById("txtboxCompany"); var tBoxAmount= document.getElementById("txtboxAmount&
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;
}
单击按钮时执行上述给定功能。它可以工作,但我必须按两次按钮,即先删除行,然后添加新行,但我希望它在一次单击中“删除并添加”。您应该替换此:
if(tookSum == true)
{
table.deleteRow(rowCount-1);
tookSum= false;
}
为此:
table.deleteRow(rowCount-1);
尽管您的代码不清楚这一点,,但第一次单击时,
tookSum
的值应为真。因此,在第一次单击时,一行被删除,tookSum
值被更新为false。因此,第二次单击“无”时,将删除行并插入新行。我之所以这样做是因为您声称这是真的,您需要单击,并且当您单击您提到的按钮时,会执行函数alterTable
。您应该替换它:
if(tookSum == true)
{
table.deleteRow(rowCount-1);
tookSum= false;
}
为此:
table.deleteRow(rowCount-1);
尽管您的代码不清楚这一点,,但第一次单击时,
tookSum
的值应为真。因此,在第一次单击时,一行被删除,tookSum
值被更新为false。因此,第二次单击“无”时,将删除行并插入新行。我这样做的假设是基于您声称是真的,您需要单击并在您单击所提到的按钮时执行函数alterTable
。所有您需要做的,在从表中删除行之前检查行数>0
试试这个:
if(rowCount > 0)
{
table.deleteRow(rowCount-1);
}
在前面的回答中,如果表中不存在行,则
表。deleteRow(rowCount-1)
将不起作用,因此请检查row count以确认表中有一行可删除。从表中删除行之前,请检查rowCount>0
试试这个:
if(rowCount > 0)
{
table.deleteRow(rowCount-1);
}
在前面的回答中,如果表中不存在行,则
table.deleteRow(rowCount-1)
将不起作用,因此请检查row count以确认表中有一行可供删除。您能提供一个您提出的问题的示例吗?我很惊讶它能起作用tookSum==true
总是false
。JavaScript不会删除该行,因为您告诉它只有在tookSum
为true
时才删除该行。但是您正在使用false
初始化它,并且从不将其更改为true
。换句话说,你告诉它永远不要删除行。如果答案解决了你的问题,考虑接受答案。下面是如何返回此处并对勾号/复选标记执行相同操作,直到其变为绿色。这将通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,并可能希望发布(更多)答案。您将获得积分,并鼓励其他人帮助您。欢迎来到Stack!你能提供一个你所提出的问题的例子吗?我很惊讶它能起作用tookSum==true
总是false
。JavaScript不会删除该行,因为您告诉它只有在tookSum
为true
时才删除该行。但是您正在使用false
初始化它,并且从不将其更改为true
。换句话说,你告诉它永远不要删除行。如果答案解决了你的问题,考虑接受答案。下面是如何返回此处并对勾号/复选标记执行相同操作,直到其变为绿色。这将通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,并可能希望发布(更多)答案。您将获得积分,并鼓励其他人帮助您。欢迎来到Stack!