• js动态创建表格------Day59


    刚刚不知道怎么回事,CSDN博客一直打不开,就在博客园完毕了今天的记录,结果临关机,登录了下。发现又好了,就再多花个几分钟转下吧,也无论到底在意的是什么了,权当强迫症了...


    前几天记录了动态的加入一行一列:insertRow()和insertCell();动态的删除一行一列:deleteRow()和deleteCell();选中一行:this的參数传递,这些都是实现的关键,可是这一切都建立在一个基础上:那就是存在一个表格。今天就来记录下动态建立表格的方法:

    其实在刚開始的时候。我仅仅想到了一个方法,尽管到最后发现这种方法确实还是比較简单的,就像是动态加入行和列一样,整合起来不就是一个表格了么:

    来看一下编写的代码,同一时候还发现了它的生成方式:(这里在html页面上留了一个tableTest的div)

    1 window.onload=function createTable1() {
    2     var table = document.createElement('table');
    3     for (var i = 0; i < 4; i++) {
    4      var row = table.insertRow();
    5      for (var j = 0; j < 2; j++) {
    6       var cell = row.insertCell();
    7       cell.innerHTML = "这里是"+i +"行" +',' + j+"列";
    8      }
    9     }
    10     document.getElementById('tableTest').appendChild(table);
    11     table.setAttribute('border', '1');
    12 }
    这样来看一下生成的效果:

    这里可看到了吧,他是从下向上生成的行,从右向左生成的列。也就意味着。插入一行之后。再进行插入的话,是在其上方插入行,在左边插入列,后来从网上搜索了之后,原来还有好多方法,当然各种应用各有千秋。这里简单写一下其他两种方式:

    1、生成元素

    看代码的生成步骤:

     1  window.onload=function createTable2() {
     2     var table = document.createElement('table');
     3     var tbody = document.createElement('tbody');
     4     for (var i = 0; i < 4; i++) {
     5      var tr = document.createElement('tr');
     6      for (var j = 0; j < 2; j++) {
     7       var td = document.createElement('td');
     8       var inner = document.createTextNode("这个是"+i +"行"+ ',' + j+"列");
     9       td.appendChild(inner);
    10       tr.appendChild(td);
    11      }
    12      tbody.appendChild(tr);
    13     }
    14     table.appendChild(tbody);
    15     document.getElementById('tableTest').appendChild(table);
    16     table.setAttribute('border', '1');
    17 }
    这样再来看一下效果的话:

    这个就是从上到下,从左到右的生成了吧。这个的话尽管理解上简单,可是写法上也比較麻烦呢。

    2、数组编辑(拼接html语言)

    看代码的实现步骤:

    1 window.onload= function createTable4() {
    2     var arr = new Array();
    3     arr.push('<table border=1><tbody>');
    4        for (var i = 0; i < 4; i++) {
    5            arr.push('<tr>');
    6         for (var j = 0; j < 3; j++) {
    7             arr.push('<td>' +"这里是"+ i +"行"+ ',' + j +"列"+ '</td>');
    8         }
    9         arr.push('</tr>');
    10        }
    11        arr.push('</tbody><table>');
    12        
    13        document.getElementById('tableTest').innerHTML = arr.join('');
    14    }
    这时候来看效果的话:

    这个理解起来就更简单了,就算是把Array改成字符串拼接的话。我们可能理解的更清晰些,就跟在html语言里面加入一样吧,这样写起来最easy理解,可是确实有些啰嗦了。

    其实看到代码的时候。确实自己就能明确该怎样是怎么实现的加入。可是最開始想到动态加入的时候,却仅仅想到了近期在研究的方法,就有点不周全了。今天開始补牙。还是有点害怕补牙啊,感觉好恐怖....

    这花了三分钟再把博客园上写好的转到这里来,是一种执念么,还是一种矫情。哎,睡觉。天有些晚了...





  • 相关阅读:
    jacob使用入门及问题解析
    java通过jacob来读取word转换为htm格式
    Java操作Microsoft Word之jacob
    将一个项目导入到另一个项目里
    N个富文本编辑器/基于Web的HTML编辑器
    VirtualBox虚拟机网络设置(四种方式)
    (重置adb.exe)android关于The connection to adb is down, and a severe error has occured.这个问题的解决办法
    对java3d的位置理解
    作为Web开发人员,我为什么喜欢Google Chrome浏览器
    非阻塞同步机制与CAS操作
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7103528.html
Copyright © 2020-2023  润新知