首頁 >web前端 >js教程 >javascript 實作簡單的table排序及table操作練習_javascript技巧

javascript 實作簡單的table排序及table操作練習_javascript技巧

WBOY
WBOY原創
2016-05-16 17:45:021068瀏覽

在這個列子中,練習了table的操作,主要有:tBodies、rows、cells,還有有關數組的排序方法:sort
先上代碼:

複製程式碼 程式碼如下:





table排序



































2 bbb  
5 eee    
3 ccc  
4 ddd    
1 aaa    


<script> <BR>window.onload = function () { <BR>var oTable = document.getElementById('tableTest'); <BR>var oTbody = oTable.tBodies[0]; <BR>var oBtn = document.getElementById('sort'); <BR>var arr = [];//用來存放每一個tr <BR>var isAsc = true;//用來判斷升序,還是降序<BR>oBtn.onclick = function () { <BR>for (var i = 0; i < oTbody.rows.length; i ) { <BR>arr[i ] = oTbody.rows[i];//這裡是把每一個tr存放到一個數組,而不是排序的依據(這裡是cells[0].innerHTML) <BR>} <BR>//數組根據cells[ 0].innerHTML來排序<BR>arr.sort(function (td1, td2){ <BR>if(isAsc) { <BR>return parseInt(td1.cells[0].innerHTML) - parseInt(td2.cells[ 0].innerHTML); <BR>} else { <BR>return parseInt(td2.cells[0].innerHTML) - parseInt(td1.cells[0].innerHTML); <BR>} <BR>}); <BR>//把排序後的tr 重新插入tbody <BR>for(var j =0; j < arr.length; j ) { <BR>oTbody.appendChild(arr[j]); <BR>} <BR>//判斷升序,降序<BR>isAsc = !isAsc; <BR>} <BR>} <BR></script>



下面囉嗦一些相關的知識點:
我們都知道,平時操作一般的DOM可以getElementsByTagName、getElementById雲雲來獲取相關節點
在table中當然這種方法也可以實現
顯然,這樣操作會很麻煩
所以,對於table我們可以用另一套方法、屬性來操作:
在這之前,先說一些有關table的東東:
平時寫table相信很多人會直接這樣寫:
複製程式碼 程式碼如下:








3 ccc    

如果,你firebug查看程式碼,你會發現會多出一個tbody來,明明原始碼是沒有的
這是為毛? !
其實,table的真正結構是:table中也包括:thead、tbody、tfoot,其中tbody是可以多個的
回到主題上來:
javascript中有關table元素的屬性、方法:
caption:保存對元素(如果有)的指標
tBodies:是一個 元素的HTMLCollection
tFoot:儲存著對 元素(如果有)的指標
tHead:保存對元素(如果有)的指標
rows:是一個表格中所有行的HTMLCollection
createTHead():建立元素,將建立元素,將建立其放到表格中,並傳回引用
createTFoot():建立 元素,將其放到表格中,並傳回引用
createCaption():建立元素,將其放到表格中,並回傳引用
deleteTHead():刪除 元素
deleteTFoot():刪除 元素
deleteCaption():刪除元素
deleteRow(pos):刪除指定位置行
insertRow(pos):在rows集合中指定位置插入一行
有關tbody的屬性、方法
rows:儲存tbody所有行的HTMLCollection
deleteRow(pos):刪除指定位置的行
insertRow(pos):向rows的集合中的指定位置插入一行,並傳回新插入行的參考
有關tr的屬性、方法
cells:儲存tr所有td(儲存格)的HTMLCollection
deleteCell(pos):刪除指定位置的儲存格
insetCell(pos):向cells的集合中的指定位置插入一個單元格,並返回對該單元格的引用
OK,就說這些………………
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn