javaScript之表格操作<一:新增行>

时间:2023-06-02 13:12:50
DOM表格系列操作

 

/**
* 添加表格行
* @function 本接口可以用于:在表格tbody部分新增任意数量,任意样式的行HTML结构;
* @name addTableLines
* @author zengtai
* @date 2017-07-29
* @dependce 支持IE 8.0及以上;不依赖于其他jaavscript库
*
* @param TableId[指定类型:string]
* @param TdOptions[tds配置项:td单元格内部需要填充的html元素或者数据等;格式见下面tdOptions的Demo]
* @param tdNumber[新增行的单元格数:指定类型:number]
* @param lineNumber[新增行数:指定类型:number]
*
* @notice 本函数仅对tbody部分进行操作。
* @notice 为了再次确认调用方的td需要的的数目,所以TdOptions.number的数据必须与tdNumber保持一致
*/
// tdOptions Demo
// var tdOptions = {
// number:2,//td单元格的数量
// tds:["<input type='text' class='form-control'>","<a href='#' class='btn btn-danger'>删除</a>"]
// }
function addTableLines(tableId, TdOptions, tdNumber, lineNumber) {
//检验参数齐全性
if (arguments.length != 4 || (typeof(tableId) != 'string') || (typeof(TdOptions) != 'object') || (typeof(tdNumber) != 'number') || (typeof(lineNumber) != 'number')) {
throw new Error("Arguments is not qualified!");
}
//检验TdOptions与配置项TdOptions.number的数据是否一致,如果不一致,说明有问题。
if (TdOptions.number != tdNumber) {
throw new Error("TdOptions.number 与 tdNumber的数据不一致!");
} var tableNode = document.getElementById(tableId);
var tbody = tableNode.getElementsByTagName('tbody')[0]; for (var i = 0; i < lineNumber; i++) { //行
var newLine = document.createElement("tr"); for (var j = 0; j < tdNumber; j++) { //行内单元格
var newTd = document.createElement("td");
newTd.innerHTML = TdOptions.tds[j]; //此方法支持IE8.0及其以上
newLine.insertBefore(newTd, null); //插入后成为最后一行内单元格个子节点
} tbody.appendChild(newLine); //插入后成为tbody的最后一个行子节点
}
return tableNode;
}

  效果图:

javaScript之表格操作<一:新增行>

  点击增加后:

javaScript之表格操作<一:新增行>