1. 程式人生 > >js實現動態刪除表格的行或者列-------Day57

js實現動態刪除表格的行或者列-------Day57

back _id ron easy 技術 註意 次循環 ont 時序

昨天記錄了動態加入表格的一行,當然這個一行是指一行數據,也就是說一行多少列也是加上的,而且第幾列的內容都能夠加入上,先來回想下它的實現的關鍵點:

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