//创建表格
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. 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)

    向量是线性代数最基础.最基本的概念之一,要深入理解线性代数的本质,首先就要搞清楚向量到底是什么? 向量之所以让人迷糊,是因为我们在物理.数学,以及计算机等许多地方都见过它,但又没有彻底弄懂,以至于似是 ...

  2. python---面对对象的组合

    组合 给一个类的对象封装一个属性,这个属性是另一个类的对象,这样我们在调用这个属性时就指向了另一个类的对象,这样我们就可以调用另一个类的方法. 模拟英雄联盟写一个游戏人物的类# 要求:# (1)创建一 ...

  3. Django model 表与表的关系

    一对多:models.ForeignKey(其他表) 多对多:models.ManyToManyField(其他表) 一对一:models.OneToOneField(其他表) 应用场景: 一对多:当 ...

  4. BZOJ4891 TJOI2017龙舟(Polllard-Rho)

    对给定模数分解质因数后约分即可.依然常数巨大过不了. #include<iostream> #include<cstdio> #include<cmath> #in ...

  5. Mercurial(Hg)基本操作

    Mercurial(Hg)基本操作 来源 https://www.cnblogs.com/gb2013/archive/2012/05/18/Mercurial_Basic.html Mercuria ...

  6. java 字符串的运算公式直接转计算结果

    // 字符串的运算公式直接转计算结果 public static void main(String[] args) {ScriptEngine se = new ScriptEngineManager ...

  7. 自学Zabbix之路15.4 Zabbix数据库表结构简单解析-Expressions表、Media表、 Events表

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路15.4 Zabbix数据库表结构简单解析-Expressions表.Medi ...

  8. C# 面向对象零碎知识点

    obgect: 所有数据类型都是obgect类型: 万能类型 var :原来的变量不变,替换成var: 动态类型 dynamic :类似object,遍历需要转: is  as: 类型转换运算符: ( ...

  9. 【SPOJ10628】Count on a tree

    题目大意:给定一棵 N 个节点的树,点有点权,要求回答 M 个询问,每次询问点 u 到点 v 的简单路径(链)上权值第 K 小是多少. 题解:学习到了树上主席树. 主席树维护序列时,每次将后一个点的树 ...

  10. 【洛谷P1248】加工生产调度

    题目大意:某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工.某个产品i在A.B两车间加工的时间分别为Ai.Bi.怎样安排这n个产品的加工顺序, ...