`
java_lk
  • 浏览: 40097 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

动态生成Table

    博客分类:
  • js
阅读更多
在http://topic.csdn.net/t/20030823/16/2180668.html找到的,将内容进行了整理,把有用的代码留下。

manyou的代码:
<HTML>   
  <BODY>   
  <script>   
  hy   =   new   Object();   
    
  //   +----------------------------------------------------+   
  //   |   创建表格类 |   
  //   +----------------------------------------------------+   
  hy.cT   =   function()   
  {   
  var   args,   ot,   rc,   cc,   i,   j,   rw,   itd,   _pa,   as,   xx,   nn;   
  as   =   {'bgc':'bgcolor',   'bg':'backgorund',   'h':'height',   'cN':'className',   'oC':'onClick',   'style':'STYLE',   'oDC':'onDoubleClick',   'oMO':'onMouseOver',   'oMOu':'onMouseOut',   'oMD':'onMouseDown',   'oMU':'onMouseUp',   'w':'width',   'cp':'cellpadding',   'cs':'cellspacing',   'iH':'innerHTML',   'br':'border'};   //as::attributes初始化table,tr,td的所有属性列表   
    
  args   =   hy.cT.arguments;   //得到参数列表   
    
  _pa   =   function(obj)   //pa::public_attributes生成所有属性   
  {   
  var   nm;   
  for   (nm   in   xx)   {   //nm::name公用属性名称   
  eval('obj.'   +   nm   +   '=xx[nm]');   //为table,tr或td的属性赋值   
  }   
  if   (xx['id'])   obj.name   =   xx['id'];   //为table,tr或td的name属性赋值   
  }   
    
  //建立一个表格对象   
  ot   =   document.createElement("TABLE");   
  //表格对象属性   
    
  xx   =   [];   //清空数组   
  for   (nn   in   args[0])   xx[(as[nn]==null?nn:as[nn])]   =   args[0][nn];   //执行完后xx数组的格式举例:xx['bgcolor']   =   '#ffffaa'   
  if   (!xx['cellpadding'])   xx['cellpadding']   =   '0';   
  if   (!xx['cellspacing'])   xx['cellspacing']   =   '0';   
  if   (!xx['border'])   xx['border']   =   '0';   
  if   (!xx['width'])   xx['width']   =   '100%';   
  _pa(ot);   //生成公用属性   
  if   (args.length   ==   1)   return;   //如果参数只有一行,直接返回   
  rc   =   (args[0]['row']?args[0]['row']:1);   //rc::row_count表格行数   
  if   (rc)   cc   =   (args.length-1-rc)/rc;   //cc::colume_count表格列数   
  for   (i=0;   i<rc;   i++)   {   
  xx   =   [];   //清空数组,以备下一个对象使用   
  rw   =   ot.insertRow(i);   //建立一行   
  for   (nn   in   args[(cc   +   1)*i   +   1])   xx[(as[nn]==null?nn:as[nn])]   =   args[(cc   +   1)*i   +   1][nn];   //执行完后xx数组的格式举例:xx['bgcolor']   =   '#ffffaa'   
  _pa(rw);   //生成公用属性   
  for   (j=0;   j<cc;   j++)   {   
  xx   =   [];   
  //建立一列   
  itd   =   rw.insertCell(j);   //itd::insert_td::插入列   
  //TD对象属性   
  for   (nn   in   args[(cc   +   1)*i   +   2   +   j])   xx[(as[nn]==null?nn:as[nn])]   =   args[(cc   +   1)*i   +   2   +   j][nn];   //执行完后xx数组的格式举例:xx['bgcolor']   =   '#ffffaa'   
  if   (!xx['width'])   xx['width']   =   '100%';   
  _pa(itd);   //生成公用属性   
  }   
  }   
  return   ot.outerHTML;   //返回生成的表格字符串   
  };   
    
    
  //调用创建表格类   
  var   str   =   hy.cT({'row':3,   'id':'aaa',   'w':'100%',   'br':'5',   'style':'border-color:#FF3300;',   'cp':'5',   'cs':'5',   'oC':'alert()'},   
    
  {'h':111,   'oC':'alert()',   'wwwwww':'asdfasdfasdf',   'id':'x'},   
  {'id':'www',   'w':136,   'cN':'hyIc2SCL',   'iH':'lsdjfsldkjf',   'bgc':'#6666FF'},   
  {'w':4,   'iH':'ph'},   
  {'id':'bbb',   'cN':'hyIc2SCR',   'iH':'<font   color=#FF0066>恍恍惚惚含含糊糊</font>'},   
    
  {'h':1},   
  {'iH':'pcbch',   'on随口的':'asdfasdfasdf',   'onselectstart':'return   false;',   'id':'qqqqq'},   
  {'iH':'pcvbxch','id':'xxx'},   
  {'iH':'pxvh','id':'www'},   
    
  {'h':1},   
  {'cN':'hyIc2SCLL',   'iH':'pxvh'},   
  {'iH':'pxcvh',   '搜索':'脸色打击法'},   
  {'cN':'hyIc2SCRL',   'iH':'pxcvh'}   
  );   
  document.write(str);   
    
  var   fso   =   new   ActiveXObject("Scripting.FileSystemObject");   
  var   bbb   =   fso.CreateTextFile("d:/table.txt",   true);   
  bbb.Write(str);   
  bbb.Close();   
  </script>   
  </BODY>   
  </HTML>   
    
    
  创建表格类createTable演示:   
    
    
  ***直接调用:   
  ------------------------------------------   
  1.调用的格式:   
  ------------------------------------------   
  hy.createTable(   {'row':3,   'id':'aaa',   'oC':'alert("这是table")'},   //table属性数组***注意必须设定属性row(行数)的值,下面的行数组个数与此行数对应***   
    
  {'h':35,   'id':'tr1',   'cN':'classtr'},   //第一行   
  {'id':'td1',   'w':'100%',   'iH':'<font>td1中的内容</font>'},   //第一行,第一列   
  {'id':'td2',   'w':'100%',   'iH':'<font>td2中的内容</font>'},   //第一行,第二列   
  {'id':'td3',   'w':'100%',   'iH':'<font>td3中的内容</font>'},   //第一行,第三列   
    
  {'h':35,   'id':'tr2',   'cN':'classtr'},   //第二行   
  {'id':'td1',   'w':'100%',   'iH':'<font>td1中的内容</font>'},   //第二行,第一列   
  {'id':'td2',   'w':'100%',   'iH':'<font>td2中的内容</font>'},   //第二行,第二列   
  {'id':'td3',   'w':'100%',   'iH':'<font>td3中的内容</font>'},   //第二行,第三列   
    
  {'h':35,   'id':'tr3',   'cN':'classtr'},   //第三行   
  {'id':'td1',   'w':'100%',   'iH':'<font>td1中的内容</font>'},   //第三行,第一列   
  {'id':'td2',   'w':'100%',   'iH':'<font>td2中的内容</font>'},   //第三行,第二列   
  {'id':'td3',   'w':'100%',   'iH':'<font>td3中的内容</font>'},   //第三行,第三列   
              );   
    
  以上是假设定义一个三行三列的表,那么第一个参数是table的属性数组(***注意必须设定属性row(行数)的值)('row':3表示表格有三行,'id':'aaa'表示表格的名字....)   
  第二个参数是第一行('h':35表示tr的高度是35,'id':'tr1'表示tr的id是tr1,'cN':'classtr'表示tr的样式名是classtr)   
  后面的三个参数是第一个tr的三列(如果是三行四列,那么这句话改为:后面的四个参数是第一个tr的四列.   其他类推)('id':'td1'表示td的id是td1,'w':'100%'表示td的宽度是100%,'iH':'<font>td1中的内容</font>'表示td的内容是<font>td1中的内容</font>)   
  再后面一个参数是第二行...   
    
  如果你定义的参数只有一行,那么函数生成像这样的字符串<table></table>后返回   
  ------------------------------------------   
  2.调用举例:   
  ------------------------------------------   
  ------------------------------------------   
    
    
  3.属性祥解:   
  ------------------------------------------   
  row::表格中的行数   默认值为1行   
  table,tr,td通用的属性:   
  1.bgc::bgcolor::背景色     
  2.bg::backgorund::背景图片     
  3.h::height::高度     
  4.cN::className::样式表调用     
  5.style::STYLE样式     
  6.id::ID或NAME     
  7.oMO::onMouseOver::鼠标移动     
  8.oMOu::onMouseOut::鼠标移出     
  9.oMD::onMouseDown::鼠标按下     
  10.oMU::onMouseUp::鼠标抬起     
  11.oC::onClick::鼠标单击     
  12.oDC::onDoubleClick::鼠标双击   
  table独有的属性:   
  1.br::border::默认值0     
  2.cp::cellpadding::默认值0     
  3.cs::cellspacing::默认值0     
  4.w::width::宽度默认值100%   
  td独有的属性:   
  1.iH::innerHTML::内容     
  2.w::width::宽度,默认值100%   
  3.align::对齐属性   
  另外除了以上已定义好的属性外,   table,tr,td的属性可任意定制:   例如你可以为td添加一个属性aaa='bbb'   



manyou更正后的代码
 <HTML>   
  <HEAD>   
  </HEAD>   
    
  <BODY>   
  <script>   
  hy   =   new   Object();   
  //   +----------------------------------------------------+   
  //   |   创建表格类 |   
  //   +----------------------------------------------------+   
  hy.createTable   =   function()   
  {   
    
  var   args,   ot,   rc,   cc,   i,   j,   rw,   itd,   _pa;   
    
  args   =   hy.createTable.arguments;   //得到参数列表   
    
  _pa   =   function(obj,   i)   //pa::public_attributes生成公用属性   
  {   
  if   (args[i]['bgc'])   obj.bgcolor   =   args[i]['bgc'];   
  if   (args[i]['bg'])   obj.backgorund   =   args[i]['bg'];   
  if   (args[i]['h'])   obj.height   =   args[i]['h'];   
  if   (args[i]['cN'])   obj.className   =   args[i]['cN'];   
  if   (args[i]['style'])   obj.style   =   args[i]['style'];   
  if   (args[i]['id'])   obj.id   =   args[i]['id'];   
  if   (args[i]['id'])   obj.name   =   args[i]['id'];   
  if   (args[i]['oC'])   obj.onClick   =   args[i]['oC'];   
  if   (args[i]['oDC'])   obj.onDoubleClick   =   args[i]['oDC'];   
  if   (args[i]['oMO'])   obj.onMouseOver   =   args[i]['oMO'];   
  if   (args[i]['oMOu'])   obj.onMouseOut   =   args[i]['oMOu'];   
  if   (args[i]['oMD'])   obj.onMouseDown   =   args[i]['oMD'];   
  if   (args[i]['oMU'])   obj.onMouseUp   =   args[i]['oMU'];   
  }   
    
  //建立一个表格对象   
  ot   =   document.createElement("TABLE");   
  //表格对象属性   
  ot.border   =   (args[0]['br']?args[0]['br']:'0');   
  ot.cellpadding   =   (args[0]['cp']?args[0]['cp']:'0');   
  ot.cellspacing   =   (args[0]['cs']?args[0]['cs']:'0');   
  ot.width   =   ((args[0]['w'])?args[0]['w']:'100%');   
  _pa(ot,   0);   //生成公用属性   
  rc   =   (args[0]['row']?args[0]['row']:1);   //rc::row_count表格行数   
  cc   =   (args.length-1-rc)/rc;   //cc::colume_count表格列数   
  for   (i=0;   i<rc;   i++)   {   
  rw   =   ot.insertRow(i);   //建立一行   
  _pa(rw,   (cc   +   1)*i   +   1);   //生成公用属性   
  for   (j=0;   j<cc;   j++)   {   
  //建立一列   
  itd   =   rw.insertCell(j);   //itd::insert_td::插入列   
  //TD对象属性   
  if   (args[(cc   +   1)*i   +   2   +   j]['iH'])   itd.innerHTML   =   args[(cc   +   1)*i   +   2   +   j]['iH'];   
  if   (args[(cc   +   1)*i   +   2   +   j]['align'])   itd.align   =   args[(cc   +   1)*i   +   2   +   j]['align'];   //为innerHTML属性赋值   
  itd.width   =   (args[(cc   +   1)*i   +   2   +   j]['w']?args[(cc   +   1)*i   +   2   +   j]['w']:'100%');   //为宽度属性赋值   
  _pa(itd,   (cc   +   1)*i   +   2   +   j);   //生成公用属性   
  }   
  }   
  return   ot.outerHTML;   //返回生成的表格字符串   
  };   
    
    
  //调用创建表格类   
  var   str   =   hy.createTable({'row':3,   'id':'aaa',   'w':'100%',   'br':'1',   'cp':'0',   'oC':'alert()'},   
    
  {'h':111,   'oC':'alert()',   'id':'x'},   
  {'id':'www',   'w':136,   'cN':'hyIc2SCL',   'iH':'lsdjfsldkjf',   'bgc':'#6666FF'},   
  {'w':4,   'iH':'ph'},   
  {'id':'bbb',   'cN':'hyIc2SCR',   'iH':'<font   color=#FF0066>恍恍惚惚含含糊糊</font>'},   
    
  {'h':1},   
  {'iH':'pcbch',   'id':'qqqqq'},   
  {'iH':'pcvbxch','id':'xxx'},   
  {'iH':'pxvh','id':'www'},   
    
  {'h':1},   
  {'cN':'hyIc2SCLL',   'iH':'pxvh'},   
  {'iH':'pxcvh'},   
  {'cN':'hyIc2SCRL',   'iH':'pxcvh'}   
  );   
  document.write(str);   
    
  </script>   
  </BODY>   
  </HTML>   


分享到:
评论

相关推荐

    javascript动态生成table及处理.

    在现代 Web 开发中,动态生成 HTML 元素是一种非常实用的技术,尤其当涉及到数据展示时,如表格(`&lt;table&gt;`)。通过 JavaScript 动态生成表格可以更加灵活地管理和更新数据。本文将深入分析一个具体的示例,该示例...

    JQuery 动态生成Table表格实例代码

    本实例将详细讲解如何使用jQuery的`append`和`appendto`方法来动态生成Table表格。 首先,让我们了解`append`和`appendto`这两个jQuery方法。`append`方法用于在匹配元素的末尾添加新的内容,而`appendto`则是相反...

    js动态生成table

    在JavaScript中,动态生成table是一种常见的网页交互功能,它允许我们根据需求在页面上实时创建、添加或删除表格行(tr)和单元格(td)。这个功能在数据展示、表格编辑或者用户交互丰富的应用场景中非常实用。下面...

    使用AJAX动态生成table表格数据和jquery.pagination.js 的分页栏

    在本例中,我们的目标是动态生成一个table表格。首先,HTML中需要有一个表格结构,但初始时不包含任何数据。我们使用jQuery选择器获取这个表格,并在AJAX请求成功后,将服务器返回的数据插入到表格中。假设服务器...

    javascript 动态生成table

    javascript动态生成固定样式的table

    JQ json动态生成table

    当我们需要从后台获取数据并动态地展示在前端表格(table)上时,jQuery和JSON的结合就显得尤为重要。本篇文章将深入探讨如何使用jQuery从后台获取JSON数据,并动态生成HTML表格。 首先,理解JSON数据结构至关重要...

    读取json数据动态生成table

    在JavaScript(JS)开发中,动态地从JSON(JavaScript Object Notation)数据中读取信息并将其呈现到HTML表格(table)中是一项常见的任务。JSON因其简洁、易读且易于处理的特性,常用于存储和交换结构化数据。在这...

    js实现table分页可以动态生成table

    总结一下,实现JavaScript动态分页表格的关键步骤包括: 1. 创建HTML结构,包括表格和分页导航。 2. 在JavaScript中处理数据分页逻辑,包括计算总页数、显示指定页数据和处理分页按钮事件。 3. 获取数据,可能是从...

    JQuery 动态生成DIV、Table并处理数据

    标题 "JQuery 动态生成DIV、Table并处理数据" 涉及的是使用JavaScript库JQuery来动态创建HTML元素,特别是DIV和Table,并且处理其中的数据。这在Web开发中非常常见,尤其是在构建交互式用户界面时。下面将详细阐述这...

    js 实现根据数组分组动态生成table(合并相同项)

    在JavaScript编程中,根据数组数据进行分组并动态生成表格是一项常见的需求,特别是在Web开发中。这个场景通常出现在数据展示、报表生成或者数据分析的应用中。本文将深入探讨如何使用JavaScript实现这一功能,尤其...

    JQuery Ajax动态生成Table表格

     本示例大概功能是前台通过JQuery的Ajax调用一般处理程序(Handler),获取表格需要显示的信息,然后转换成json格式返回给前台,前台获取到数据后循环构建表格的行,最好把行附加到表里。 目标:  a 熟悉简单JQuery ...

    spring4 MVC +maven + mysql数据库 + mybatis+根据后台json前台动态生成table

    在本项目中,我们主要探讨的是如何利用Spring4 MVC、Maven、MySQL数据库、MyBatis框架以及前端JSON数据来动态生成表格。这是一个常见的Web应用开发模式,它可以帮助开发者快速构建数据驱动的Web应用程序。 首先,...

    jquery实现动态生成表格

    数据展示时候,经常从后台传入大小不等的矩阵。这里给出了根据不同矩阵大小,通过jquery的html()和append()方法动态生成html表格的实例。

    jQuery ajax动态生成table功能示例

    本文实例讲述了jQuery ajax动态生成table的方法。分享给大家供大家参考,具体如下: $(function(){ ajaxT(); }); function ajaxT(){ $.ajax({ type:"POST", dataType: "json", url:"&lt;&#37;=basePath%&gt;...

    java实现任意带table表格的html页面,生成与表格相同内容的excel文件

    要求能够实现给出任意带table表格的html文件,生成与表格相同内容的excel文件,附件可以作为测试文件,提供给定的roster.html文件,通过java代码,实现生成与html页面的table相同样式的roster.xls文件。

    动态添加Table表格

    动态添加Table表格可以提供灵活的数据展示方式,适应不同场景和数据量的变化。本示例将详细介绍如何在ASP.NET后台使用C#语言来实现动态添加表格的功能。 首先,我们需要了解动态创建表格的基本步骤: 1. **创建...

    jQuery实现动态给table赋值的方法示例

    这个技巧不仅适用于填充表格,还可以应用于其他需要动态生成或更新DOM内容的场景。结合jQuery的相关专题学习,如jQuery表格操作、JSON数据处理、表单操作等,可以进一步提升开发效率和代码质量。

Global site tag (gtag.js) - Google Analytics