js動態建立table表格和刪除指定行列程式碼例項
本章節分享一段程式碼例項,它實現了動態建立table表格和刪除指定行列的效果。
雖然外觀比較粗陋,但是這不是重點,這裡介紹的是如何實現指定功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> //動態建立表格 function createTable() { var divMain = document.getElementById("divMain"); removeAllChild(divMain); var myTable = document.createElement("table"); myTable.id = "DynamicTable"; var myRow = document.getElementById("myRow").value; var myCol = document.getElementById("myCol").value; var trNode; var tdNode; var strTmp; for (var index = 1; index <= myRow; index++) { trNode = myTable.insertRow(-1); for (var j = 1; j <= myCol; j++) { strTmp ="第"+ index + "行,第"+ j + "列"; tdNode = trNode.insertCell(-1); tdNode.innerHTML = "<a href='javascript:void(0);'>" + strTmp + "</a>"; } } divMain.appendChild(myTable); } function removeAllChild(nodeObj) { while (nodeObj.hasChildNodes()) { nodeObj.removeChild(nodeObj.firstChild); } } function DeleteRow() { var rowNum = document.getElementById("delRow").value; var tbl = document.getElementById("DynamicTable"); if (tbl == null) { alert('請先建立表格'); return; } if ((rowNum <= tbl.rows.length) && (rowNum > 0)) { tbl.deleteRow(rowNum-1); } else { alert('請輸入一個有效的行!'); } } //刪除列 function DeleteCol() { var colNum = document.getElementById("delCol").value; var tbl = document.getElementById("DynamicTable"); if (tbl == null) { alert('請先建立表格'); return; } if(tbl.rows.length<=0) { alert('表格不存在行'); return; } if ((colNum <= tbl.rows[0].cells.length) && (colNum > 0)) { for (var index = 0; index < tbl.rows.length; index++) { tbl.rows[index].deleteCell(colNum - 1); } } else { alert('指定列不存在'); } } window.onload=function(){ var createTb=document.getElementById("createTb"); var delRowBt=document.getElementById("delRowBt"); var delColBt=document.getElementById("delColBt"); createTb.onclick=function(){createTable()} delRowBt.onclick=function(){DeleteRow()} delColBt.onclick=function(){DeleteCol()} } </script> </head> <body> 請輸入行數:<input type="text" id="myRow" />請輸入列數:<input type="text" id="myCol"/><br/> <input type="button" id="createTb" value="建立表格"/><br/> <input type="text" id="delRow" /><input id="delRowBt" type="button" value="刪除行"/><br/> <input type="text" id="delCol" /><input id="delColBt" type="button" value="刪除列"/><br/> <div id="divMain"></div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function createTable(){},此函式實現動態建立表格的效果。
(2).var divMain = document.getElementById("divMain"),獲取指定的元素物件,裡面存放的就是建立的table。
(3).removeAllChild(divMain),刪除div元素下所有的子元素,其實就是建立表格之前先清空原來的表格。
(4).var myTable = document.createElement("table"),建立一個table表格元素物件。
(5).myTable.id = "DynamicTable",為元素建立id屬性並賦值。
(6).var myRow = document.getElementById("myRow").value,將要建立表格的行數。
(7).var myCol = document.getElementById("myCol").value,將要建立表格的列數。
(8).var trNode,用來儲存tr元素節點。
(9).var tdNode,用來儲存td元素節點。
(10).var strTmp,用來暫時儲存td單元格中的內容。
(11).for (var index = 1; index <= myRow; index++) {},使用for迴圈的方式建立指定的行。
(12).trNode = myTable.insertRow(-1),在表格的末尾追加一個tr行。
(13).for (var j = 1; j <= myCol; j++) {
strTmp ="第"+ index + "行,第"+ j + "列";
tdNode = trNode.insertCell(-1);
tdNode.innerHTML = "<a href='javascript:void(0);'>" + strTmp + "</a>";
},為tr行建立追加指定書目的單元格。
(14).divMain.appendChild(myTable),將table表格新增到div元素。
(15).function removeAllChild(nodeObj) {
while (nodeObj.hasChildNodes()) {
nodeObj.removeChild(nodeObj.firstChild);
}
}刪除元素下所有的子元素節點。
(16).function DeleteRow() {},可以實現刪除行的操作。
(17).var rowNum = document.getElementById("delRow").value,獲取要刪除的行。
(18).var tbl = document.getElementById("DynamicTable"),獲取建立的表格元素物件。
(19).if (tbl == null) {
alert('請先建立表格');
return;
},如果不存在表格,那麼就彈出提示,並跳出函式。
(20).if(tbl.rows.length<=0) {
alert('表格不存在行');
return;
},如果不存在表格的行,那麼彈出提示,並跳出函式。
(21).if ((colNum <= tbl.rows[0].cells.length) && (colNum > 0)) {
for (var index = 0; index < tbl.rows.length; index++) {
tbl.rows[index].deleteCell(colNum - 1);
}
},執行刪除行的操作。
二.相關閱讀:
(1).document.createElement()可以參閱document.createElement()一章節。
(2).insertRow()可以參閱js insertRow()一章節。
(3).insertCell()可以參閱js insertCell()一章節。
(4).innerHTML屬性可以參閱js innerHTML一章節。
(5).appendChild()方法可以參閱js appendChild()一章節。
(6).hasChildNodes()可以參閱javascript hasChildNodes()一章節。
(7).removeChild()方法可以參閱js removeChild()一章節。
(8).firstChild可以參閱javascript firstChild一章節。
(9).rows屬性可以參閱js rows一章節。
(10).deleteRow()可以參閱js deleteRow()一章節。
相關文章
- js動態新增和刪除table表格行程式碼例項JS行程
- javascript生成指定行列table表格程式碼例項JavaScript
- javascript動態建立指定行與列table表格程式碼例項JavaScript
- javascript動態刪除或者新增table表格行程式碼例項JavaScript行程
- 刪除table表格行和列程式碼例項
- 動態刪除和新增table行程式碼例項行程
- javascript動態刪除和新增表格行程式碼例項JavaScript行程
- jQuery刪除表格指定行程式碼例項jQuery行程
- javascript新增或者刪除table表格行程式碼例項JavaScript行程
- javascript動態操作table表格程式碼例項JavaScript
- 動態的新增或者刪除指定元素程式碼例項
- js table表格排序程式碼例項JS排序
- js刪除指定的li元素程式碼例項JS
- 動態建立具有刪除行按鈕的table表格
- JavaScript刪除table表格指定行JavaScript
- js迭代table表格的行和列程式碼例項JS
- jquery刪除指定元素程式碼例項jQuery
- js獲取table表格指定行和列的單元格內容程式碼例項JS
- javascript動態建立table表格程式碼示例JavaScript
- js table表格操作大全程式碼例項JS
- html元素的動態新增和刪除程式碼例項HTML
- javascript獲取和刪除指定cookie程式碼例項JavaScriptCookie
- 點選刪除表格行程式碼例項行程
- table表格美化程式碼例項
- table表格使用程式碼例項
- jquery刪除指定子元素程式碼例項jQuery
- javascript刪除指定子元素程式碼例項JavaScript
- js動態建立文字框程式碼例項JS
- js動態建立HTML元素程式碼例項JSHTML
- js如何動態建立一個table表格JS
- javascript刪除陣列指定值程式碼例項JavaScript陣列
- table細線表格例項程式碼
- jQuery操作表格table程式碼例項jQuery
- js獲取table表格指定行列td單元格內容JS
- js刪除li元素程式碼例項JS
- JavaScript 動態建立table表格JavaScript
- JavaScript動態建立table表格JavaScript
- javascript刪除指定索引的陣列程式碼例項JavaScript索引陣列