利用javascript动态创建表格

时间:2023-11-17 11:12:14

//说明:实现功能、原理上文相同。不过这次是利用已有的简单的方法创建行和列,并实现内容行鼠标移入变色功能!

效果图:

利用javascript动态创建表格

/*两个方法

1、  trNode  table.insertRow(-1)    利用已创建的表格对象创建一行,返回值为该行的dom对象

2   tdNode trNode.insertCell(-1)    利用已经创建的行对象创建一列,返回值为该列的dom对象

*/

//实现代码:

<!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>动态创建表格</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;

            }

        .thead{

        background-color:#cae8ea;

        }

        </style>

        <script type="text/javascript">

        onload=function(){

            var jsons=[{name:"andy",age:20,gender:"male"},{name:"xiao",age:23,gender:"female"}];//json数组

            

            var table=document.createElement('table');//创建表

            var caption=document.createElement('caption');//创建标题

            caption.innerHTML='学生信息表';//设置标题的内容

            table.appendChild(caption);//将标题加入table

            

            var tHead=table.insertRow(-1);//创建首行

            for(var tHeadContent in jsons[0]){//循环遍历json数组中的第一值,获取每个json对象的键名

                tHead.insertCell(-1).innerHTML=tHeadContent;

            }

            tHead.className='thead';//设置第一行(即列名所在行)所引用的样式名称

            

            for(var i=0;i<jsons.length;i++){//循环遍历json数组

                var tr=table.insertRow(-1);//创建一行

                for(var item in jsons[i]){                

                    var td=tr.insertCell(-1);//每循环一次就创建创建一列

                    td.innerHTML=jsons[i][item];//设置该列的列值    

                }

                    tr.onmouseover=function(){//为每行添加鼠标移入事件

                        this.style.backgroundColor='#8aeebb';

                    };

                    tr.onmouseout=function(){//为每行添加鼠标离开事件

                    this.style.backgroundColor="";

                    };

            }

        

            var body=document.getElementsByTagName('body')[0];//获取body对象

            body.appendChild(table);//将table数组加入到body中

        }

        </script>

    </head>

    <body>

    </body>

</html>