2017-06-13 56 views
0

爲什麼JavaScript不能同時執行2個操作?即行刪除和行插入。爲什麼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次,即1刪除行,然後添加一個新的行,但我希望它'點擊刪除和添加'。

+0

你能提供一個你正在展示的問題的例子嗎? – Lixus

+2

我很驚訝它的作品。 'tookSum == true'總是'false'。 JavaScript不會刪除該行,因爲如果'tookSum'爲'true',則只會將其刪除。但是你用'false'初始化它,並且永遠不會將它改變爲'true'。即你告訴它永遠不要刪除該行。 –

+0

如果答案解決了您的問題,請考慮接受答案。下面是[meta.stackexchange.com](http://meta.stackexchange.com/questions/5234)如何返回到此處,並使用勾號/複選標記執行相同操作,直至變爲綠色。這告知社區,找到了解決方案。否則,其他人可能會認爲這個問題仍然存在,並且可能需要發佈(更多)答案。您將獲得積分,其他人將被鼓勵幫助您。歡迎來到Stack! –

回答

1

所有你需要做的,檢查rowCount > 0從表中刪除行

嘗試此之前:

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

在前面的答案,如果沒有行存在於表然後table.deleteRow(rowCount-1)會不工作,所以檢查行數以確認表中有一行可用於刪除。

1

此時應更換此:

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

與此:

table.deleteRow(rowCount-1); 

儘管這是不明確你的代碼tookSum值應爲真實的第一次點擊。因此,在第一次點擊時,一行被刪除,tookSum值更新爲false。因此,第二次單擊無行將被刪除,並插入一個新行。我做了這個假設的基礎上,你聲稱是真實的,你需要點擊和功能alterTable是當你點擊你所提到的按鈕執行。

相關問題