js實現動態刪除表格的行或者列-------Day57
昨天記錄了動態加入表格的一行,當然這個一行是指一行數據,也就是說一行多少列也是加上的,而且第幾列的內容都能夠加入上,先來回想下它的實現的關鍵點:
1、var row=table.insertRow();加入一行;
2、var cell1=row.insertCell();加入一個單元格;(假設在後面繼續寫var cell2=row.insertCell()的話。就是加入第二列;)
3、cell1.innerHTML="第一列的內容";向第一個單元格中填充值
以上就是昨天記錄的動態加入一行的所有了,當然可以加入就能刪除。而今天來記錄的就是動態的刪除。刪除一行,刪除一列。
首先看刪除一行:
我們先來看存在的表格:
這樣,如今存在一個四行兩列的表格。我們先來實現刪除某指定一行:假定我們須要刪除第三行,我們該怎麽寫呢?
這樣來看一下代碼:在html代碼中,在delRowbutton上加入方法onclick="c()";
function c(){ var table=document.getElementById("tad"); var len=table.rows.length; table.deleteRow(len-2);//這裏刪除的是倒數第二行。也就是第三行 }這樣我們來執行下,結果顯示為:
這樣,第三行就被刪除了。由此我們能夠得知,刪除一行的方法為deleteRow(index)。index為參數。表示第幾行。這個參數時從上向下,由0開始數的,另外有特別須要註意的一點:假設參數不寫,則效果與參數為0一樣。表示刪除最上面一行
這樣實現刪除全部行是不是就有思路了,這樣我們來寫下代碼:
function c(){ var table=document.getElementById("tad"); var len=table.rows.length; for(var i=0;i<len;i++){ table.deleteRow();//也能夠寫成table.deleteRow(0); } }
就僅僅剩下table的外殼了,裏面的內容全都不見了。原理我們懂了,代碼我們也實現了。可是在實現過程中有幾點我們須要註意:
1、在循環中我們是首先獲取的固定值。var len=table.rows.length;然後i<len,而不是直接寫i<table.rows.length;
想必大家都明確當中的原因,刪除一行之後,在進入第二次循環的時候,表格已經變動了。則table.rows.length也改變了。然而i也增大了,等到table.row.length<=i的時候行並沒有所有刪光,在這個樣例中的話應該是i=2的時候table.rows.length也等於2了,則就不再進行刪除了,所以會余下兩行,解決的辦法之中的一個。當然就是按我寫這樣,還有一種也能夠把i++去掉,知道len=0的時候停止也能夠,可是理解起來有點麻煩了就
2、在循環中我們寫的是table.deleteRow()或者table.deleteRow(0),而不是table.deleteRow(i),跟1中的原因一樣的哦
接下來我們再來記錄下刪除列。假設說行是deleteRow()的話,列該怎麽寫呢,這裏沒有cols的事情。其實就是之前加入的單元格啊。將每一行的同一列上的單元格所有刪除掉不就等同於刪除了一列麽,刪除單元格的方法相同跟加入是相應的deleteCell();
這樣假設說僅僅刪除固定列,怎麽寫也就呼之欲出了吧,繼續就上面的表格進行操作,刪除第三行第二列。我們來寫下實現代碼:
function d(){ var table=document.getElementById("tad"); table.rows[2].deleteCell(1); }
這個結果太明顯了吧,那樣全部列都刪除也就easy多了。來繼續實現下代碼:
function d(){ var table=document.getElementById("tad"); for(var i=0;i<table.rows.length;i++){ table.rows[i].deleteCell(1); } }
這個結果也就隨之而來了,這樣我們就實現了動態的刪除行和列,我們再來總結下:
1、刪除行的方法:deleteRow();加入行則是insertRow();
2、刪除列,即是刪除單元格,方法為:deleteCell();而加入列則是insertCell()
近期工作碰到了個小問題,uml時序圖一直沒法徹底理解了呢,看起來挺簡單的。可就繞不出那個彎了。加油啊...
js實現動態刪除表格的行或者列-------Day57