在html中的等標籤就可以實現一些簡單的操作。那麼爲什麼還需要用複雜的代碼去實現那。簡單的說,一般的管理系統用動態管理表格還是比較方便的。例如我們的課程設計ttms:添加人員刪除人員修改人員之類的。
記錄一下這次做的表格操作用到一些demo.
表格的動態添加:主要實現表格的動態添加,動態添加表格的一行,當然這個一行是指一行數據
通過用insertRow()方法實現插入行;通過insertCell()方法實現單元格元素的插入
表格的動態刪除:主要通過實現表格的刪除操作,刪除指定行和刪除表格中所有內容
通過使用deleteRow(index)方法刪除表格行。index爲參數,表示第幾行,這個參數時從上向下,由0開始數的, 另外有特別需要注意的一點:如果參數不寫,則效果與參數爲0一樣,表示刪除最上面一行 相對應的是,deleteCol(index)方法是刪除單元格
表格的單元行的操作:主要實現表格的鼠標事件。鼠標的移入移出以及鼠標的點擊事件
通過方法event.srcElement.tagName方法和event.srcElement.parentElement方法實現。 event是觸發事件的源對象,而srcElement則就是選中對象,而parentElement則是選中對象的父層對象; 以當前的例子來簡單解釋的話,就是說,鼠標放上table,從而激活了事件getrow(this), 當鼠標放在任一單元格之上時,它的srcElement都是td,它的parentElement也就是tr一行了,則找到一行的對象了
表格的動態生成:通過表格的動態添加實現。利用在上面提到的insertRow()實現。
在html中我們只給出body中的代碼,在其中只需要創建一個div,對div進行表格的插入
<body>
<div id = "create_table"></div>
<body>
js代碼中主要的就是實現表格的生成。
- createElement()方法實現html中標籤的動態創建。
- appendChild()方法實現將創建的標籤添加給需要對應的父節點
- setAttribute(“class”,”value”)方法實現給對應的標籤添加屬性。class爲屬性名,value爲對應的屬性。
window.onload = function create_table() {
let table = document.createElement('table');
for (let i = 1; i <=4; i++) {
let row = table.insertRow();
for (let j = 1; j <= 2; j++) {
let cell = row.insertCell();
cell.innerHTML = "這裏是"+i +"行" +',' + j+"列";
}
}
document.getElementById('createTable').appendChild(table);
table.setAttribute('border', '1');
}
github代碼地址:https://github.com/special-wen/demo/tree/master/demo_table