在DOM中,Table的行、列、单元格都是以数组方式进行存储和访问的。所以,对Table的操作其实也就是对DOM数组的操作。
1.Table操作
/* 创建: */
document.createElement("TABLE");
/* 删除: */
box.parentNode.removeChild(box);//获取父节点再删除
box.removeNode(true);//直接删除
/* 部分属性修改 */
obj.setAttribute("id", id);//此方法在IE中对cellSpacing, cellsPadding不兼容
obj.cellSpacing = 1;
obj.cellsPadding = 2;
obj.className = "packageData";
2.行操作
/* 插入: */
row = t.insertRow(num);
/* 删除: */
t.deleteRow(num);
/* 获取当前行号 */
num = tr.rowIndex;
3.列操作
/* 插入: */
cell = tr.insertCell(num);
/* 删除: */
tr.deleteCell(num);
/* 获取当前行号 */
num = td.cellIndex ;
4.示例代码
/* 添加行 */
function doAddRow(tableid){
var t = document.getElementById(tableid);
var rows = t.rows;
var num = rows.length;
var row = t.insertRow(num);
var trid = tableid + "_tr_" + num;
row.setAttribute("id", trid);
//alert(tableid + "_tr_" + num);
row.className = "td_list_background";
var cell = row.insertCell(0);
cell.innerHTML = num;
cell = row.insertCell(1);
cell.className = "dcontent";
cell.innerHTML = '<input type="text" name="data_content"/><img src="<%=request.getContextPath() %>/images/img_lookup.gif" width="15" height="15" style="cursor:hand"/>';
cell = row.insertCell(2);
cell.className = "dcontent";
cell.innerHTML = '<input type="text" name="data_content"/>';
cell = row.insertCell(3);
cell.innerHTML = '<input type="button" value="-" onclick="doDelRow(\'' + tableid + "\',\'" + trid + '\')" class="buttonbg01" style="width:18px"></input>';
}
/* 删除行 */
function doDelRow(tableid, trid){
var t = document.getElementById(tableid);
var tr = document.getElementById(trid);
var num = tr.rowIndex;
t.deleteRow(num);
}
/* 添加列 */
function addCell (){
var t = document.getElementById("inspecttable");
t.width = parseInt(t.width) + 31;
var oBody=t.tBodies[0];
var rows=oBody.rows;
var celllength = rows[1].cells.length;
cell = rows[1].insertCell(celllength);
cell.innerHTML = celllength + 1;
for(var i = 2; i < rows.length - 2; i++){
var name = rows[i].cells[4].firstChild.name;
celllength = rows[i].cells.length;
cell = rows[i].insertCell(celllength);
cell.width="30"
cell.innerHTML = '<input size="3" type="text" name="' + name + '"/>';
}
/*
var name = rows[rows.length - 4].cells[3].firstChild.name;
celllength = rows[rows.length - 4].cells.length;
cell = rows[rows.length - 4].insertCell(celllength);
cell.width="30"
cell.innerHTML = '<input type="checkbox" name="' + name + '" value="' + (celllength - 1) + '"/>';
*/
rows[0].cells[3].colSpan = rows[0].cells[3].colSpan + 1;
rows[rows.length-1].cells[1].colSpan = rows[rows.length-1].cells[1].colSpan + 1;
rows[rows.length-2].cells[1].colSpan = rows[rows.length-2].cells[1].colSpan + 1;
//rows[rows.length-3].cells[1].colSpan = rows[rows.length-3].cells[1].colSpan + 1;
}
/** 添加表 **/
function addDataPackage(){
var div = document.getElementById("dataPackage");
var t = document.createElement("TABLE");
t.className = "packageItem";
var row = t.insertRow(0);
var cell = row.insertCell(0);
cell.className = "Lable";
cell.innerHTML = "分包合同或工程";
cell = row.insertCell(1);
cell.className = "Content";
cell.innerHTML = '<input type="text" name="TDeliverBillDto.billcode" size="35" /><img src="<%=request.getContextPath() %>/images/img_lookup.gif" width="15" height="15" style="cursor:hand"/>';
cell = row.insertCell(2);
cell.className = "closeBlock";
cell.innerHTML = '<img src="<%=request.getContextPath() %>/images/oa/delete.gif" width="15" height="15" style="cursor:hand"/>';
row = t.insertRow(1);
cell = row.insertCell(0);
cell.className = "Lable";
cell.innerHTML = "资料详细";
cell = row.insertCell(1);
cell.colSpan = '2';
cell.className = "Content";
/** begin 创建子表 **/
var subt = document.createElement("TABLE");
subt.className = "packageData"
//subt.setAttribute('cellspacing', '1');
subt.cellSpacing = 1;
row = subt.insertRow(0);
subcell = row.insertCell(0);
subcell.className = "dtitle";
subcell.style.width = "10%";
subcell.innerHTML = "序号";
subcell = row.insertCell(1);
subcell.className = "dtitle";
subcell.style.width = "40%";
subcell.innerHTML = "资料类别";
subcell = row.insertCell(2);
subcell.className = "dtitle";
subcell.style.width = "50%";
subcell.innerHTML = "资料内容";
subcell = row.insertCell(3);
subcell.className = "dtitle";
subcell.style.width = "20px";
row = subt.insertRow(1);
subcell = row.insertCell(0);
subcell.className = "dcontent";
subcell.innerHTML = "1";
subcell = row.insertCell(1);
subcell.className = "dcontent";
subcell.innerHTML = '<input type="text" name="data_type"/><img src="<%=request.getContextPath() %>/images/img_lookup.gif" width="15" height="15" style="cursor:hand"/>';
subcell = row.insertCell(2);
subcell.className = "dcontent";
subcell.innerHTML = '<input type="text" name="data_content"/>';
subcell = row.insertCell(3);
subcell.className = "dcontent";
subcell.style.padding = "0px";
subcell.innerHTML = '<input type="button" class="buttonbg01" onclick="doAddRow()" value="+" style="width:18px"/>';
/** end **/
cell.appendChild(subt);
row = t.insertRow(2);
cell = row.insertCell(0);
cell.className = "Lable";
cell.innerHTML = "寄送备注";
cell = row.insertCell(1);
cell.colSpan = '2';
cell.className = "Content";
cell.innerHTML = '<textarea name="TDeliverBillDto.deliverremark" cols="80" rows="6"></textarea>';
div.appendChild(t);
}
分享到:
相关推荐
3. **JavaScript操作**:使用JavaScript获取表格数据并创建CSV(逗号分隔值)字符串,这是Excel能识别的一种格式。 ```javascript function exportTableToCSV(filename) { var table = document.getElementById('...
在JavaScript的世界里,HTML表格(Table)是一种常用的数据展示方式,而JS操作表格则成为网页动态交互的关键。本文将深入探讨如何使用JavaScript进行表格的创建、修改、删除以及实现一些特殊效果。 首先,我们从...
在JavaScript(JS)中,动态操作表格是一种常见的需求,它涉及到HTML DOM(Document Object Model)的元素操作。本文将深入探讨如何使用JavaScript实现对表格的动态添加、删除、修改和查询功能,结合给出的标签...
在网页开发中,表格(Table)是一种常见的数据展示方式,而使用JavaScript进行交互式操作可以增强用户体验。本文将深入探讨如何使用JavaScript实现表格行的上下移动、置顶和置底功能,以及相关辅助操作。 首先,`js...
在JavaScript中,对HTML表格(`<table>`)进行排序是一项常见的需求,特别是在动态数据展示和用户交互的应用中。本文将深入探讨如何使用JavaScript实现表格数据的排序功能。 首先,我们要理解HTML表格的基本结构,...
而“bootstrap-table-export.js”和“tableExport.js”是针对Bootstrap表格的导出插件,它们扩展了表格的功能,允许用户将表格数据导出为各种格式,如CSV、Excel、PDF等,便于数据分析和存储。 首先,我们来详细...
使用javascript脚本向页面中的table添加和删除行
js操作table的特效分享
在网页设计中,JavaScript(JS)是一种常用的客户端脚本语言,用于增强用户的交互体验和动态更新页面内容。本文将深入探讨如何使用JavaScript手动改变HTML表格(table)的宽度,并结合鼠标选中文字查询功能,为用户...
本文将深入探讨如何使用JavaScript来动态地增加和删除表格(Table)的行。 首先,我们需要了解HTML表格的基本结构。一个基本的表格由`<table>`元素、`<tr>`(表格行)元素、`<td>`(表格数据单元格)元素组成。如果...
在JavaScript(js)中,对HTML表格(Table)进行排序是一项常见的需求,特别是在网页交互和数据展示中。本文将深入探讨如何使用JavaScript实现点击表头进行动态排序,并处理各种复杂情况,如包含HTML标签的单元格、...
在JavaScript中,表格(Table)是网页数据展示的常用元素,而动态地增加或删除行则是常见的交互需求。本文将深入探讨如何巧妙地利用JavaScript来实现这个功能。 首先,我们需要了解HTML中的`<table>`元素及其相关...
低调发布,因为是小样版本,集成了几个简单的方法...写此类的目的一个事方便操作table二是可以引入ajax做无刷新分页啥的 当然这些还没做 只是最简单实用的方法 争取尽快完善,引入ajax元素。尽请期待。 demo地址: ...
javascript 操作 table的一个例子. 可以下去研究下
总的来说,原生js table表格自动排序效果的实现涉及到HTML结构的理解、JavaScript事件处理、数组排序算法的运用以及DOM操作。这是一个实用的功能,通过学习和理解这个例子,可以提升我们对前端开发中数据处理和交互...
js操作HTML增加删除TR/TD (学前班级别的哈!)
Bootstrap Table Editable JS 是一个基于Bootstrap框架的动态表格插件,它允许用户在表格的单元格内进行编辑,提供了一种交互式的数据展示和管理方式。这个压缩包包含以下三个核心文件: 1. **bootstrap-editable....
提供的"JS实现漂亮的表格table特效代码"可能包含JavaScript函数和CSS样式,用于实现上述功能。通常,这将包括对HTML表格元素的操作,以及添加CSS类和JavaScript事件监听器以实现特定效果。 总之,通过结合...
解压后,开发者可以参考其中的 HTML、CSS 和 JavaScript 文件来学习如何在实际项目中设置和使用 `bootstrap-table-editable.js`。 为了更好地利用这个组件,你需要了解 Bootstrap Table 和 x-editable 的基本用法,...
通过js获取table中当前选择的一行的行号,获取当前行号后可以进行对应的操作