javascript动态向网页中添加表格实现代码

  //此段代码在IE9、Firefox、Chorme、safair中测试显示没有问题,给该表格添加了一些简单的样式,基本功能可以实现,还有少量问题有待改进!

  效果图如下:

javascript动态向网页中添加表格实现代码

  以下是代码:

  

复制代码 代码如下:

  <!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>

  <title>json数组转成表格</title>

  <meta http-equiv="content-type" content="text/html;charset=gb2312">

  <style type="text/css">

  caption {

  padding: 0 0 5px 0;

  width: 450px;

  font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;

  text-align: right;

  }

  td {

  border:1px solid #c1dad7;

  padding: 6px 6px 6px 12px;

  color: #4f6b72;

  text-align: center;

  width:150px;

  }

  </style>

  <script type="text/javascript">

  var data=[{name:'xiaoxiao',age:12,gender:'male'},{name:'xiao',age:22,gender:'male'},{name:'hh',age:12,gender:'female'},{name:'ran',age:20,gender:'female'}];

  //网页加载完成后执行该onload事件

  onload = function(){

  var body=document.getElementsByTagName('body')[0];

  body.appendChild(createTable(data));

  };

  //根据传入的json数组创建表格

  var createTable = function(data){

  //定义表格

  var table=document.createElement('table');

  table.setAttribute('style','width: 450px;');

  //定义表格标题

  var caption=document.createElement('caption');

  caption.innerHTML ='学生信息表';

  //将标题添加进表格

  table.appendChild(caption);

  //调用createTr()方法生成标题行并将其添加到table中。

  table.appendChild(createTr('姓名','年龄','性别'));

  table.childNodes[1].setAttribute('style','background:#cae8ea;');

  //alert(table.firstChild);

  //for循环json对象,然后将循环到的对象通过createTr()方法生成行,添加到table中

  for(var i=0;i<data.length;i++){

  table.appendChild(createTr(data[i].name,data[i].age,data[i].gender));

  }

  return table;

  };

  //根据用户传过来的变量生成表格中行的方法

  var createTr = function(name,age,gender){

  //定义行元素标签

  var tr=document.createElement('tr');

  //定义列元素标签

  var tdName=document.createElement('td');

  //设置该列节点的文本节点的值

  tdName.innerHTML = name;

  var tdAge = document.createElement('td');

  tdAge.innerHTML = age;

  var tdGender = document.createElement('td');

  tdGender.appendChild(document.createTextNode(gender));//等价与 tdGender.innerHTML = gender;

  //将列值添加到行元素节点

  tr.appendChild(tdName);

  tr.appendChild(tdAge);

  tr.appendChild(tdGender);

  //返回生成的行标签

  return tr;

  };

  </script>

  </head>

  <body>

  </body>

  </html>