JavaScript--动态添加元素(纯js书写table并删除数据)
本文是对上一篇博文的扩展,用js书写表格,并添加和删除数据,详细代码解释见代码页。
对于文中使用的script脚本函数,下载地址如下:https://pan.baidu.com/s/13OFnj7ncOie_X797hBZtyQ
页面效果如图:
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>动态创建元素(表格)</title>
<script src="common.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<!-- 纯JS代码创建表格 -->
<script type="text/javascript">
var body=document.getElementsByTagName('body');
//1.创建盒子作为表格容器,控制表格的位置
var box=document.createElement('div');
body[0].appendChild(box); //2.创建表格,并与box绑定
var table=document.createElement('table');
box.appendChild(table);
//设置表格样式
table.style.width='400px';
table.style.border='1px solid gray';
table.style.borderCollapse='collapse'; //3.创建表头,并与table绑定
var thead=document.createElement('thead');
table.appendChild(thead);
//定义表头的行,与表头绑定
var tr=document.createElement('tr');
thead.appendChild(tr); //4.创建表体,并与table绑定
var tbody=document.createElement('tbody');
table.appendChild(tbody); //建立模拟数据,模拟数据是一个个存在数组中的对象
var dates=[
{name:'李世民',subject:'语文',score:98},
{name:'赵匡胤',subject:'物理',score:99},
{name:'多尔衮',subject:'数学',score:92},
{name:'嬴政',subject:'英语',score:93},
{name:'玄烨',subject:'体育',score:100},
{name:'刘彻',subject:'地理',score:94},
{name:'刘邦',subject:'历史',score:97},
{name:'曹操',subject:'音乐',score:91},
{name:'刘备',subject:'政治',score:100},
{name:'孙权',subject:'化学',score:90}
]; //建立表头数据,在数组中存放
var headDates=['姓名','科目','成绩','操作']; //5.表头数据的添加
for(var i=0;i<headDates.length;i++){
//定义表头行的列
var td=document.createElement('td');
td.style.border='1px solid gray';
td.style.textAlign='center';
td.style.backgroundColor='lightgray';
td.style.height='40px';
tr.appendChild(td);
//设置表头行中列的内容
setInnerText(td,headDates[i]);
} //6.表体数据的添加
for(var i=0;i<dates.length;i++ ){
var date=dates[i];
//创建表体数据的行与表体绑定
var tr=document.createElement('tr');
tbody.appendChild(tr);
for(var key in date){
//创建表体行中的列
var td=document.createElement('td');
td.style.border='1px solid gray';
td.style.textAlign='center';
tr.appendChild(td);
setInnerText(td,date[key]);
}
//创建删除列
var link=document.createElement('a');
link.href='javascript:void(0)';
setInnerText(link,'删除');
var td=document.createElement('td');
td.style.border='1px solid gray';
td.appendChild(link);
td.style.textAlign='center';
tr.appendChild(td);
//给删除列注册事件
link.onclick=deleteData;
} function deleteData(){
var tr=this.parentNode.parentNode;
tbody.removeChild(tr);
return;
}
</script>
</body>
</html>
JavaScript--动态添加元素(纯js书写table并删除数据)的更多相关文章
- JavaScript动态加载js文件
/********************************************************************* * JavaScript动态加载js文件 * 说明: * ...
- 【JavaScript】使用纯JS实现多张图片的懒加载(附源码)
一.效果图如下 上面的效果图,效果需求如下 1.还没加载图片的时候,默认显示加载图片背景图 2.刚开始进入页面,自动加载第一屏幕的图片 3.下拉界面,当一张图片容器完全显露出屏幕,即刻加载图片,替换背 ...
- javascript动态加载js文件主流浏览器兼容版
一.代码示例: <html> <head> <meta http-equiv="Content-Type" content="text/ht ...
- 分享一个jquery写的类似于百度的搜索框,(可动态配置,可单列或者table格式,可填充数据)
需求:类似于百度的搜索框,可配置,可单列可table格式,可填充数据.页面可多次使用,简单,易用. 想法:使用jquery,css,ajax,前台调用,后台返回json数据. jquery代码: va ...
- js 多选选择删除数据
按了顶上的删除(多项删除) 单列复选框删除 js语句 <a href="javascript:delOne('${customer.id}')">删除</a> ...
- (笔记)Mysql命令drop table:删除数据表
drop table命令用于删除数据表. drop table命令格式:drop table <表名>; 例如,删除表名为 MyClass 的表: mysql> drop ta ...
- 纯JS 将table表格导出到excel
html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...
- js操作table表格导出数据到excel方法
js导出excel资料很少,网上也找了很多,基本都不能用,要么只能是IE用,还必须要权限,这是非常不好的.后来到github上找到table2excel.js,虽然可以用,但仍然对IE支持不够,也算不 ...
- 使用C#或javascript将Table里的数据导出到Excel
原文:使用C#或javascript将Table里的数据导出到Excel Demo效果图: 用C#将Table数据导出Excel: 本方法已经将导出excel做成分部视图,引用时只需在视图中使用如下代 ...
随机推荐
- show与ShowDialog substring
substring public String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串.该子字符串从指定的 beg ...
- 超级表格:要山寨Excel,还是与之Say Byebye?
创业产品难免被人拿来与现有的知名产品比较,创业者也喜欢把自己的产品与现有的知名产品比较. 我,超级表格创始人,对此有话说. 当我要在各种场合描述超级表格是什么时,也纠结过. 向用户描述时,说超级表格类 ...
- 使用CKRule实现促销管理系统
1, 常见的促销模型 促销管理系统在很多地方都有使用,大家去超市就经常体现到,感受到,不少中小型单位都其促销活动,要搞促销活动最好是有应用软件支持,这样就比较灵活管理也方便.而依靠手工处理的话效率会比 ...
- 并发包java.util.concurrent.CountDownLatch
/** * * @描述: 倒计时器 . * 犹如倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当计算器为0的时候 * 则所有等待者或单个等待者开始执行 * ...
- Struts2学习-横切关注点
1.建空项目 2.建包 3.建类 4.编写 package com.nf.action; import com.opensymphony.xwork2.ActionInvocation; import ...
- debug问题记录
debug进不去,发现断点没有带勾. 方案:去掉所有断点,重新编译,debug启动,重新打断点. source里面加入自己的java project. 关掉所有的java页面!!! dobbo服务用d ...
- HTTP 状态码 301 302
301 Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为 ...
- bzoj1264 [AHOI2006]基因匹配
Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱 ...
- 动态规划(DP),0-1背包问题
题目链接:http://poj.org/problem?id=3624 1.p[i][j]表示,背包容量为j,从i,i+1,i+2,...,n的最优解. 2.递推公式 p[i][j]=max(p[i+ ...
- 【翻译】苹果官网的命名规范之 Code Naming Basics-General Principles
苹果官方原文链接:General Principles 代码命名基本原则:通用规范 代码含义清晰 尽可能将代码写的简洁并且明白是最好的,不过代码清晰度不应该因为过度的简洁而受到影响.例如: 代码 ...