2016-07-22 72 views
0

任何人都可以幫助我的代碼? 我嘗試在以下操作上做一個示例代碼: 1.當用戶單擊按鈕時,「hello」將取1號和2號單元,而另一個3號和10號單元將保留。 2.當用戶再次點擊按鈕時,什麼也沒有發生。javascript colspan動態刪除單元格嗎?

我嘗試設置一個標誌爲false後用戶點擊它讓任何事情都不會發生,如果用戶再次點擊;但是,它根本不起作用。用戶可以點擊直到第一行的單元格被刪除,只剩下「hello」。

JavaScript或JQuery中的任何解決方案?我嘗試在javascript中搜索靜態變量,但似乎不可能。

預先感謝您。

var flag = false; 
function clickhere(){ 
    if(flag = true){ 
     var cell = document.getElementById('a'); 
     document.getElementById("row").deleteCell(1); 
     cell.setAttribute("colspan", 2); 
     cell.innerHTML = "hello"; 
     flag=false; 
    } 
} 
<table border="1"> 
    <tr id="row"> 
     <td id="a">1</td> 
     <td id="b">2</td> 
     <td id="c">3</td> 
     <td id="d">4</td> 
     <td id="e">5</td> 
    </tr> 
    <tr> 
     <td id="f">6</td> 
     <td id="g">7</td> 
     <td id="h">8</td> 
     <td id="i">9</td> 
     <td id="j">10</td> 
    </tr> 
</table> 
<input type="button" value="Click" onclick="clickhere();"/> 
+0

媽呀,我怎麼能做出這樣可怕的錯誤,我應該很難練吧,謝謝你。 – helloworld1234

回答

0

你有一對夫婦的機會來解決。首先,你的如果是做一個任務而不是比較。由於您的標誌是一個布爾值,我們可以直接使用它。其次,你的初始任務和函數末尾的任務應該是相反的。

以下是您可能會糾正的一種方法。

var flag = false; 
 
function clickhere(){ 
 
    if(flag){ return; } 
 
    flag = true; 
 

 
    var cell = document.getElementById('a'); 
 
    document.getElementById("row").deleteCell(1); 
 
    cell.setAttribute("colspan", 2); 
 
    cell.innerHTML = "hello"; 
 
}
<table border="1"> 
 
    <tr id="row"> 
 
    <td id="a">1</td> 
 
    <td id="b">2</td> 
 
    <td id="c">3</td> 
 
    <td id="d">4</td> 
 
    <td id="e">5</td> 
 
    </tr> 
 
    <tr> 
 
    <td id="f">6</td> 
 
    <td id="g">7</td> 
 
    <td id="h">8</td> 
 
    <td id="i">9</td> 
 
    <td id="j">10</td> 
 
    </tr> 
 
</table> 
 
<input type="button" value="Click" onclick="clickhere();" />

+0

感謝您的糾正。 – helloworld1234