首页 > 语言 > JavaScript > 正文

原生javaScript做得动态表格(注释写的很清楚)

2024-05-06 14:38:04
字体:
来源:转载
供稿:网友
最近看了3本o'reilly的书,我们一般称为禽兽书(跟我一同学的名字很像大笑),然后一直想做一个列子来练练手,因为看公司好多用动态表格的,所以,我就试着用js做了动态表格,用firfox浏览器来调试的,因为firbug插件用着比较好,本来就是想实现一个很小的功能,没想做那么多,就点击按钮能够增加一行就行了,后来越加越多,也越来越好看了。把源码贴出来,大家共同学习,有问题也可以指正出来,js初学者,忘大神笔下留情。

ps:不知道上面为什么不显示行号,好久没用了。 注释写的很清楚,大家共同学习。

代码如下:
<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>动态表格</title>
<style type="text/css">
body{ background-color:#9CC; text-align:center}
table{ margin:10px auto;}
tr th { border: 1px solid #096;}
td{border: 1px solid #096;}
</style>
<script type="text/javascript">
/*在函数的外部只能声明一些变量之类的,不能用操作方法,因为没有函数去调用执行它。*/

//在载入页面的时候就在表格头放入选择框,因为是一次性的
window.onload = function(){
var tab = document.getElementById('tab');
var firsttr = document.getElementsByTagName('tr')[0];
var childtd = firsttr.childNodes;
//在第一行第一列上加入选择框
var inp = document.createElement('input');
inp.type = 'checkbox';

//DOM Leve 2 事件注册
catchEvent(inp,'click',function(){ //注册函数 不同状态进行判断
if(inp.checked ==true){
allSelect();
}else{
cancelSelect();
}
});
//catchEvent(inp,'click',allSelect);
//catchEvent(inp,'change',cancelSelect);
childtd[0].appendChild(inp);

}

//增加一行
//var count =0;//增加一列用来 计数
function addRow(){
//count++;
var tab = document.getElementById('tab');
var firsttr = document.getElementsByTagName('tr')[0];
var childtd = firsttr.childNodes;
var tr = document.createElement('tr');
var arrtd = new Array();
var arrinp = new Array();
for(var i =0;i<childtd.length;i++){
arrtd[i] = document.createElement('td');
arrinp[i] = document.createElement('input');
if(i==0){
arrinp[i].type = 'checkbox';
arrinp[i].name = 'selectbox';
}else if(i==1){
//arrinp[i] = document.createTextNode(count);
arrinp[i] = document.createTextNode('');
}
arrtd[i].appendChild(arrinp[i]);//思考为什么 input也要加上数组。
tr.appendChild(arrtd[i]);
}

tab.appendChild(tr);
newSort();
}
//删除操作
function deleteRow(){
var parentTr = new Array();//先把被选中的行放在一个数组上
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选