JavaScript之表格操作(二)创建表格病填充表格数据
//创建表格
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之表格操作(二)创建表格病填充表格数据的更多相关文章
- Laravel --- artisan创建表以及填充表数据流程总结
1.创建建表文件 php artisan make:migration create_comments_table 打开database/migrations/xxx_create_comments_ ...
- javascript的DOM操作(二)
<html> <title>学习DOM</title> <a id="wen">文本</a> <input nam ...
- dojo表格操作的简单示例(建立表格)
代码示例: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...
- javascript的常用操作(二)
Undefined 不是 Null 在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法. 对象只有被定义才有可能为 null,否则为 undefined. ...
- (转载)EF 使用code first模式创建数据库和 填充种子数据
第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html 第二篇:来自 JustYong 博主的文章:htt ...
- 第一百一十五节,JavaScript,DOM操作表格
JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...
- MySQL 基础二 创建表格
1.界面创建 2.SQL创建 教程地址:http://blog.csdn.net/brucexia/article/details/53738596 提供学习视频下载 链接:http://pan.ba ...
- .Net Core NOPI操作word(二) 表格操作
一.创建表格操作 private void btnExport_Click(object sender, EventArgs e) { var dbcontext = new BlogModel(); ...
- 【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用
这章本来准备写成jQuery的表单操作和表格操作的. 然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统, ...
随机推荐
- loadrunner基础学习笔记五-场景
场景目标:模拟10家旅行社同时登录.搜索航班.购买机票.查看航班路线并退出 负载测试是指在典型工作条件下测试应用程序,例如:多家旅行社同时在同一个机票预订系统中预订机票 controller提供所有用 ...
- [代码]Delphi实现窗体内嵌其他应用程序窗体
实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果. 本文实现的是内嵌一个记事本程序, ...
- BZOJ2124 等差子序列(树状数组+哈希)
容易想到一种暴力的做法:枚举中间的位置,设该位置权值为x,如果其两边存在权值关于x对称即合法. 问题是如何快速寻找这个东西是否存在.考虑仅将该位置左边出现的权值标1.那么若在值域上若关于x对称的两权值 ...
- postgresql c library use
#include <stdio.h> #include <libpq-fe.h> int main() { int lib_ver = PQlibVersion(); prin ...
- BZOJ 4009: [HNOI2015]接水果
4009: [HNOI2015]接水果 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 636 Solved: 300[Submit][Status] ...
- 洛谷 P2149 [SDOI2009]Elaxia的路线 解题报告
P2149 [SDOI2009]Elaxia的路线 题目描述 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia ...
- luogu3628 特别行动队 (斜率优化dp)
推出来式子以后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include ...
- Office2016自定义安装
Office2016已经不提供自定义安装功能,而采用C2R安装方式.使用镜像安装时,默认全部安装.想要自定义安装就需要用到微软提供的Office2016部署工具. 步骤 下载并运行微软提供的Offic ...
- 再谈一次关于Java中的 AIO(异步IO) 与 NIO(非阻塞IO)
今天用ab进行压力测试时,无意发现的: Requests per second: xxx [#/sec] (mean) ab -n 5000 -c 1000 http://www:8080/up ...
- 文件操作(十二)——open,read,close,write,seek,truncate
open函数 #!/usr/bin/env python #-*- coding:utf8 -*- f = open('xxx','r',encoding='utf-8') data = f.read ...