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的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来. 那么今天就来看看表格吧. 因为平常做的都是公司的内部管理系统, ...
随机推荐
- Google社交梦之隐私问题
导读 2011年6月底,Google+ 作为Facebook最有力狙击者的身份诞生,同时以隐私功能作为两者主要区分点:2018年10月,Google+被曝发生重大隐私泄露问题,消费版本被宣布仅剩10个 ...
- BZOJ3237 AHOI2013连通图(线段树分治+并查集)
把查询看做是在一条时间轴上.那么每条边都有几段存在时间.于是线段树分治就好了. 然而在bzoj上t掉了,不知道是常数大了还是写挂了. 以及brk不知道是啥做数组名过不了编译. #include< ...
- EF 更新 删除
为了避免先查询后更新或删除的问题 可以使用如下语句 Entities db = new Entities(); Orders o = new Orders(); o.id = 6; o.name = ...
- MyBatis在表名作为参数时遇到的问题
之前在用MyBatis的时候没用过表名作为参数,最近使用到了. 基于注释使用MyBatis的Dao层代码如下: @Repository public interface Base1102Dao { @ ...
- hdu 5126 stars (四维偏序,离线,CDQ套CDQ套树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5126 思路:支持离线,那么我们可以用两次CDQ分治使四维降为二维,降成二维后排个序用树状数组维护下就好 ...
- [luogu4868]Preprefix sum
https://www.luogu.org/problemnew/show/P4868 题目大意 单点修改,查询前缀前缀和. 分析 遇到了单点修改,前缀和,很明显是要树状数组维护解决问题. 请看以下我 ...
- tensorflow GPU版本安装及配置
经检测速度大幅度上升,不枉费我折腾了这么久,最坑的就是网上教程.书都没有写将cuda的bin加入全局变量,还是根据报错信息推出来的. 1.cuda9.0下载安装 https://developer.n ...
- 使用debootstrap制作debian-jessie系统docker镜像
先看一下Docker官网提示:In general, you'll want to start with a working machine that is running the distribut ...
- A1032. Sharing
To store English words, one method is to use linked lists and store a word letter by letter. To save ...
- asp 调用 vb(activex dll) ,参数传递(传引用)需要注意
今天上午测试 vb 与 c(dll) 之间交互,传递参数的时候,没遇到什么太大的问题. 下午在asp中调用vb(activex dll)时, 在asp代码中传参数到 vb(dll)中时,遇到问题了. ...