在這個列子中,練習了table的操作,主要有:tBodies、rows、cells,還有有關數組的排序方法:sort 先上代碼: 複製程式碼 程式碼如下: table排序 2 bbb 5 eee 3 ccc 4 ddd 1 aaa <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> 下面囉嗦一些相關的知識點: 我們都知道,平時操作一般的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,就說這些………………