DOM基础教程之使用DOM控制表格

 更新时间:2015年01月20日 16:08:25   投稿:hebedich  
这篇文章主要介绍了DOM基础教程之使用DOM控制表格的相关资料,需要的朋友可以参考下

表格的css控制就先不说了,首先分享下表格常用的DOM

表格添加操作的方法常用的为insertRow()和insertCell()方法。

row是从零开始计算起的,例如:

复制代码 代码如下:
var oTr = document.getElementById("member").insertRow(2)

是指将新行添加到第二行。

复制代码 代码如下:

var aText = new Array();
aText[0] = document.createTextNode("fresheggs");
aText[1] = document.createTextNode("W610");
aText[2] = document.createTextNode("Nov 5th");
aText[3] = document.createTextNode("Scorpio");
aText[4] = document.createTextNode("1038818");
for(var i=0;i<aText.length;i++){
var oTd = oTr.insertCell(i);
oTd.appendChild(aText[i]);
}

变量oTr即为表格插入新行,再利用insertCell为这行插入新的数据,利用createTextNode创建新的文本节点,在appendChild给oTd,oTd即为新的单元格。  

1.插入一行(动态添加表格)

复制代码 代码如下:

<script type="text/javascript">
window.onload=function(){
    var oTr = document.getElementById("member").insertRow(2);    //插入一行
    var aText = new Array();
    aText[0] = document.createTextNode("fresheggs");
    aText[1] = document.createTextNode("W610");
    aText[2] = document.createTextNode("Nov 5th");
    aText[3] = document.createTextNode("Scorpio");
    aText[4] = document.createTextNode("1038818");
    for(var i=0;i<aText.length;i++){
        var oTd = oTr.insertCell(i);
        oTd.appendChild(aText[i]);
    }
}
</script>
<table class="datalist" summary="list of members in EE Studay" id="member">
    <caption>Member List</caption>
    <tr>
        <th scope="col">Name</th>
        <th scope="col">Class</th>
        <th scope="col">Birthday</th>
        <th scope="col">Constellation</th>
        <th scope="col">Mobile</th>
    </tr>
    <tr>
        <td>isaac</td>
        <td>W13</td>
        <td>Jun 24th</td>
        <td>Cancer</td>
        <td>1118159</td>
    </tr>
    <tr>
        <td>girlwing</td>
        <td>W210</td>
        <td>Sep 16th</td>
        <td>Virgo</td>
        <td>1307994</td>
    </tr>
    <tr>
        <td>tastestory</td>
        <td>W15</td>
        <td>Nov 29th</td>
        <td>Sagittarius</td>
        <td>1095245</td>
    </tr>
</table>

2.修改表格的内容

当表格建立后,可以直接使用HtmlDom对表格进行操作,相比document.getElementById(),document.getElementsByTagName()操作更为方便。
oTable.rows[i].cell[j]
以上通过rows、cells两个属性轻松访问到表格特定的内容第i行和第j列(都是从0开始计数),获得单元格对象后就可以使用innerHTML属性修改翔宇的内容了。
例如修改4行5列的内容为good
则可以使用以下代码

复制代码 代码如下:

var oTable = document.getElementById("table1");
oTable.rows[4].cells[5].innerHTML = "good";

3.删除表格内容

表格既然有添加、修改、就有删除功能。
表格中删除行使用deleteRow(i)方法,其中i为行号。
表格中删除列使用tr的deleteCell(j)方法。

如下代码表示删除表格的第二行及原来表格第三行的第二列

复制代码 代码如下:
var oTable = document.getElementById("table1"); oTable.deleteRow[2]; oTable.rows[2].deleteCell[3];

如下代码表示删除表格的第二行及原来表格第三行的第二列 考虑到动态删除又不影响整体html框架,又或者表格内容很多的情况下,可以采用动态删除添加的办法

复制代码 代码如下:

<script type="text/javascript">
window.onload=function(){
    var oTr = document.getElementById("member").insertRow(2);    //插入一行
    var aText = new Array();
    aText[0] = document.createTextNode("fresheggs");
    aText[1] = document.createTextNode("W610");
    aText[2] = document.createTextNode("Nov 5th");
    aText[3] = document.createTextNode("Scorpio");
    aText[4] = document.createTextNode("1038818");
    for(var i=0;i<aText.length;i++){
        var oTd = oTr.insertCell(i);
        oTd.appendChild(aText[i]);
    }
}
</script>
<table class="datalist" summary="list of members in EE Studay" id="member">
    <caption>Member List</caption>
    <tr>
        <th scope="col">Name</th>
        <th scope="col">Class</th>
        <th scope="col">Birthday</th>
        <th scope="col">Constellation</th>
        <th scope="col">Mobile</th>
    </tr>
    <tr>
        <td>isaac</td>
        <td>W13</td>
        <td>Jun 24th</td>
        <td>Cancer</td>
        <td>1118159</td>
    </tr>
    <tr>
        <td>girlwing</td>
        <td>W210</td>
        <td>Sep 16th</td>
        <td>Virgo</td>
        <td>1307994</td>
    </tr>
    <tr>
        <td>tastestory</td>
        <td>W15</td>
        <td>Nov 29th</td>
        <td>Sagittarius</td>
        <td>1095245</td>
    </tr>
</table>

删除列

复制代码 代码如下:

function deleteColumn(oTable, iNum) {
                //自定义删除列函数,即每行删除相应单元格
                for (var i = 0; i < oTable.rows.length; i++)
                    oTable.rows[i].deleteCell(iNum);
            }
            window.onload = function() {
                var oTable = document.getElementById("table1");
                deleteColumn(oTable, 2);
            }

对于删除表格列而言,DOM中没有直接可调用的方法,需要自己来写deleteColumn()方法,该方法接受两个参数,一个参数是表格对象,另外一个参数则是希望删除的列号。编写方法很简单,利用deleteCell()方法,每一行都执行相应的删除单元格的方法。

相关文章

  • JavaScript中的pow()方法使用详解

    JavaScript中的pow()方法使用详解

    这篇文章主要介绍了JavaScript中的pow()方法使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • JavaScript表达式:URL 协议介绍

    JavaScript表达式:URL 协议介绍

    javascript:后面可以是表达式或者使用分号分隔的表达式集合如javascript: 5 + 4,感兴趣的朋友可以参考下或许可以帮助到你
    2013-03-03
  • Javascript中常见的校验如域名、手机、邮箱等等

    Javascript中常见的校验如域名、手机、邮箱等等

    Javascript中常见的校验如:验证一般域名校验,手机校验,邮箱校验等等,下面是具体的实现,感兴趣的朋友可以参考下
    2014-01-01
  • javascript高级选择器querySelector和querySelectorAll全面解析

    javascript高级选择器querySelector和querySelectorAll全面解析

    下面小编就为大家带来一篇javascript高级选择器querySelector和querySelectorAll全面解析。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-04-04
  • 详解微信小程序中var、let、const用法与区别

    详解微信小程序中var、let、const用法与区别

    微信小程序是可以使用最新ES6标准规范的Javascript来开发的,所有ES6中的新特性微信小程序也是支持的,下面我们来总结下信小程序中var、let、const用法与区别
    2020-01-01
  • TypeScript开发环境安装

    TypeScript开发环境安装

    这篇文章介绍了TypeScript开发环境的安装方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • JS排序方法(sort,bubble,select,insert)代码汇总

    JS排序方法(sort,bubble,select,insert)代码汇总

    新技术一直在不断变化,掌握一些基础是未来学习不断更新的技术的坚实基础。近来闲来无事,为了温习一下从前学的数据结构,将数据结构中的排序算法用JS实现了一遍,
    2016-01-01
  • 浅谈javascript中new操作符的原理

    浅谈javascript中new操作符的原理

    下面小编就为大家带来一篇浅谈javascript中new操作符的原理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • js之onload事件的一点使用心得

    js之onload事件的一点使用心得

    window.load和window.onload的意思并不只是页面加载完就执行,那要看你怎么用了,下面做了示例为大家介绍下,感兴趣的朋友可以参考下
    2013-08-08
  • javascript 中__proto__和prototype详解

    javascript 中__proto__和prototype详解

    本文详细介绍了javascript的内部原型__proto__和构造器原型prototype,以及他们之间的异同,十分的详尽,有需要的小伙伴快来研究下吧。
    2014-11-11

最新评论