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做成分部视图,引用时只需在视图中使用如下代 ...
随机推荐
- scss-@mixin
@mixin指令用于定义混入,它包括任选的变量和参数中的mixin名称后. scss简单示例: @mixin style { .cont{ color: #77C1EF; } } @include s ...
- 从零开始的全栈工程师——PHP篇 ( 单词汇总 ) ( php解决文字乱码 )
解决乱码: header("Content-Type: text/html;charset=utf-8"); 单词 局部的: local 全局的: global 静态的: stat ...
- jquery.rotate.js可选抽奖次数和中奖内容的转盘抽奖demo
需求: 最多可以抽奖5次,而且,每次只会中“2000元理财金”或者“谢谢参与”,其它的不会抽中(哈哈,果然都是套路). 效果如下: 一.页面结构: <div class="g-cont ...
- 学习canvas
canvas简介 <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么 ...
- C语言入门(一)环境搭建
1. 下载Code::Blocks(源文本编辑器) 2. 下载编译器MinGW(或者下载好自带编译器的codeblocks) http://jingyan.baidu.com/article/c843 ...
- 【IOS】Mac和IOS开发资源汇总
本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按**command+D**). 今天收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大家有知道不错的站点,可 ...
- Android学习——Fragment静态加载
从今天开始做一套安卓的学习笔记,开发环境是Android Studio,把学习过程中的知识和遇到的问题都写在这里,先从Fragment开始学起. Fragment概述 Fragment是Android ...
- python功能
1.前端使用ajax 项目名字/views.py from django.shortcuts import render from django.http import JsonResponse fr ...
- HDU 5536 字典树
题意:就是公式. 这现场赛O(n^3)能过,觉得太没天理了. 做法:字典树,枚举两个数,然后在字典树上贪心的跑. #include <bits/stdc++.h> using namesp ...
- Spring data jpa命名规范
JPA命名规范 (sample与JPQL等效) Table 4. Supported keywords inside method names Keyword Sample JPQL snippet ...