//创建表格
var tableOptions = {
way: "insertBefore", //insertBefore,append
positionId: "domTest", //定位元素节点的ID
tableId: "my-table",
rows: 2,
cols: 8,
data: [
['四川', '宁夏', '西藏', '北京', '上海', '台湾', '福建', '河北'],
['陕西', '天津', '山东', '江苏', '湖北', '广东', '湖南', '江西']
], //二维数组
border: 1,
textAlign: 'center',
fontFamily: "华文细黑",
}; function createTable(tableOptions) { /******************************************************************/
//检验参数合法性
var check = function() {
if ( /*arguments.length != 1 || */ (typeof(arguments) != 'object')) {
//console.log('test arguments ' + arguments);
//console.log('test tableOptions ' + tableOptions.cols);
console.log("arguments.length " + arguments.length);
console.log("typeof(arguments) " + typeof(arguments));
throw new Error("参数不合法!");
} //检查data与rows,cols的一致性
if (tableOptions.data) { //如果data不为空
if (tableOptions.data[0].length != tableOptions.cols) { //列不同
throw new Error("data的列数与cols不一致!");
}
if (tableOptions.data.length != tableOptions.rows) { //行不同
throw new Error("data的行数与rows不一致!");
}
}
}; //初始化table
var initTable = function() {
table = document.createElement("table"); //创建table //配置table初始化样式
table.id = tableOptions.tableId || "table";
table.border = tableOptions.border || 1;
table.width = "100%";
table.style.textAlign = tableOptions.textAlign || "center";
table.style.fontFamily = tableOptions.fontFamily || "华文细黑"; //创建tbody
tbody = document.createElement("tbody");
table.appendChild(tbody);
} //创建表格并初始化表格内容
var createTableContents = function(tbody, data, positionId, way) {
//将data的元素逆置
// data.sort( function(a,b){ return a - b; });
for(var k = 0; k < data.length; k++){
data[k].reverse();
} for (var i = 0; i < data.length; i++) {
tbody.insertRow(i); //创建行并插入i行
for (var j = 0; j < data[i].length; j++) {
tbody.rows[i].insertCell(j); //插入在i行j列
tbody.rows[i].cells[j].insertBefore(document.createTextNode(data[i][j]),null);
// tbody.rows[i].cells[j].appendChild(document.createTextNode("Cell " + i + " , " + j));//方法2
}
} //插入文档节点中
var positionElement = document.getElementById(positionId); if((way == "append") || (way == null)){
console.log('test:insert way: append');
positionElement.appendChild(table);
}
else if(way == "insertBefore"){
console.log('test:insert way: insertBefore');
positionElement.insertBefore(table,null);
}
/*注释:
1.null:插入成为最后一个节点
2.node.first:插入成为第一个节点
3.node.last:插入到最后一个节点前面
*/
};
/***************************************************************/ check(); var table = null;
var tbody = null;
initTable(); createTableContents(tbody, tableOptions.data,tableOptions.positionId,tableOptions.way);
}

JavaScript之表格操作(二)创建表格病填充表格数据的更多相关文章

  1. Laravel --- artisan创建表以及填充表数据流程总结

    1.创建建表文件 php artisan make:migration create_comments_table 打开database/migrations/xxx_create_comments_ ...

  2. javascript的DOM操作(二)

    <html> <title>学习DOM</title> <a id="wen">文本</a> <input nam ...

  3. dojo表格操作的简单示例(建立表格)

    代码示例: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...

  4. javascript的常用操作(二)

    Undefined 不是 Null 在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法. 对象只有被定义才有可能为 null,否则为 undefined. ...

  5. (转载)EF 使用code first模式创建数据库和 填充种子数据

    第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html 第二篇:来自 JustYong 博主的文章:htt ...

  6. 第一百一十五节,JavaScript,DOM操作表格

    JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...

  7. MySQL 基础二 创建表格

    1.界面创建 2.SQL创建 教程地址:http://blog.csdn.net/brucexia/article/details/53738596 提供学习视频下载 链接:http://pan.ba ...

  8. .Net Core NOPI操作word(二) 表格操作

    一.创建表格操作 private void btnExport_Click(object sender, EventArgs e) { var dbcontext = new BlogModel(); ...

  9. 【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用

    这章本来准备写成jQuery的表单操作和表格操作的. 然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统, ...

随机推荐

  1. mysql 8.0,运行springboot项目配置:

    1.修改pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto ...

  2. 51nod-1459-迷宫游戏

    题意:中文题目.. 解题思路:我的做法就是单源最短路中加个记录分数的数组,如果dis[i]到dis[x]的距离可以被优化,那就连记录分数的数组一起优化,如果第二条路和第一条路的距离相等,那就取最大的分 ...

  3. Ubuntu 18.10 版本发布

    Ubuntu 是一个基于 Debian 的以桌面为主的 Linux 发行版,以其应用性而闻名.Ubuntu 提供三种官方版本:用于个人计算机的 Ubuntu 桌面,用于服务器和云的 Ubuntu 服务 ...

  4. [TJOI2011]构造矩阵

    考虑优化贪心,不回溯,对于每一位,你都判一下放0的话后面是否有解,用网络流判是否可以完美匹配就行了. 但这样时间复杂是错的,所以不必每次都重新建图,现在原来的图中看一下该行列是否已经匹配,若没有,则强 ...

  5. [luogu2149][bzoj1880][SDOI2009]Elaxia的路线【拓扑排序+最短路+DP】

    题目描述 最近,Elaxia和w的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w每天都要奔波于宿舍和实验室之间,他们 希望在节约时间 ...

  6. luogu2178/bzoj4199 品酒大会 (SA+单调栈)

    他要求的就是lcp(x,y)>=i的(x,y)的个数和a[x]*a[y]的最大值 做一下后缀和,就只要求lcp=i的了 既然lcp(x,y)=min(h[rank[x]+1],..,[h[ran ...

  7. ZABBIX 3.4 监控服务器TCP连接状态(六)

    TCP的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB:或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考 ...

  8. VirtualBox中slitaz系统不能联网

    首先,关于VirtualBox虚拟机中安装slitaz操作系统中,先不讲,现在假设电脑中已经装好了VirtualBox,并且已经装好了slitaz操作系统,一个轻量版的linux发行版本. 右上角我画 ...

  9. source insight的使用方法逆天整理

    http://www.cnblogs.com/ningskyer/articles/4038501.html A. why SI: 为什么要用Source Insight呢?因为她比完整的IDE要更快 ...

  10. weichat Small 程序

    微信小程序教程用什么语言  ? 答:php java html5 css, 咫尺微页很棒可以自制 html 它是一套自有的语言(暂且叫 WeLang),使用 WeLang 开发出来的页面. 一个微信页 ...