DOM系列---DOM操作表格

DOM在操作生成HTML上,还是比较简明的。不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了。本篇章主要了解一下DOM操作表格。

一.操作表格

<table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML
DOM来操作它。(PS:HTML
DOM
提供了更加方便快捷的方式来操作HTML,有手册)

html代码部分:

//需要操作的table


 1 <table border="1" width="300">
2
3 <caption>人员表</caption>
4
5 <thead>
6
7 <tr>
8
9 <th>姓名</th>
10
11 <th>性别</th>
12
13 <th>年龄</th>
14
15 </tr>
16
17 </thead>
18
19 <tbody>
20
21 <tr>
22
23 <td>张三</td>
24
25 <td>男</td>
26
27 <td>20</td>
28
29 </tr>
30
31 <tr>
32
33 <td>李四</td>
34
35 <td>女</td>
36
37 <td>22</td>
38
39 </tr>
40
41 </tbody>
42
43 <tfoot>
44
45 <tr>
46
47 <td colspan="3">合计:N</td>
48
49 </tr>
50
51 </tfoot>
52
53 </table>

注意:caption标签在一个表格里只有一个

   thead标签在一个表格里只能有一个

tfoot标签在一个表格里只能有一个

tbody标签在一个表格里可以有N个

tr,td和th标签在一个表格里可以有N个

JS代码部分:


 1 //使用DOM来创建这个表格
2
3 var table = document.createElement(‘table‘);
4
5 table.border = 1;
6
7 table.width = 300;
8
9
10
11 var caption = document.createElement(‘caption‘);
12
13 table.appendChild(caption);
14
15 caption.appendChild(document.createTextNode(‘人员表‘));
16
17
18
19 var thead = document.createElement(‘thead‘);
20
21 table.appendChild(thead);
22
23
24
25 var tr = document.createElement(‘tr‘);
26
27 thead.appendChild(tr);
28
29
30
31 var th1 = document.createElement(‘th‘);
32
33 var th2 = document.createElement(‘th‘);
34
35 var th3 = document.createElement(‘th‘);
36
37
38
39 tr.appendChild(th1);
40
41 th1.appendChild(document.createTextNode(‘姓名‘));
42
43 tr.appendChild(th2);
44
45 th2.appendChild(document.createTextNode(‘性别‘));
46
47 tr.appendChild(th3);
48
49 th3.appendChild(document.createTextNode(‘年龄‘));
50
51
52
53 document.body.appendChild(table);
54
55

PS:使用DOM来创建表格其实已经没有什么难度,就是有点儿麻烦而已。

下面我们再使用HTML DOM来获取和创建这个相同的表格。

HTML
DOM
中,给这些元素标签提供了一些属性和方法












































属性或方法

说明

caption

保存着<caption>元素的引用

tBodies

保存着<tbody>元素的HTMLCollection集合

tFoot

保存着对<tfoot>元素的引用

tHead

保存着对<thead>元素的引用

rows

保存着对<tr>元素的HTMLCollection集合

createTHead()

创建<thead>元素,并返回引用

createTFoot()

创建<tfoot>元素,并返回引用

createCaption()

创建<caption>元素,并返回引用

deleteTHead()

删除<thead>元素

deleteTFoot()

删除<tfoot>元素

deleteCaption()

删除<caption>元素

deleteRow(pos)

删除指定的行

insertRow(pos)

向rows集合中的指定位置插入一行

<tbody>元素添加的属性和方法














属性或方法

说明

rows

保存着<tbody>元素中的HTMLCollection

deleteRow(pos)

删除指定位置的行

insertRow(pos)

向rows集合中的指定位置插入一行,并返回引用

<tr>元素添加的属性和方法














属性或方法

说明

cells

保存着<tr>元素中单元格的HTMLCollection

deleteCell(pos)

删除指定位置的单元格

insertCell(pos)

向cells集合的指定位置插入一个单元格,并返回引用

PS:因为表格较为繁杂,层次也多,在使用之前所学习的DOM来获取某个元素会非常难受,所以使用HTML
DOM
会清晰很多。

//使用HTML DOM来获取表格元素

  var table =
document.getElementsByTagName(‘table‘)[0];   //获取table引用

//按照之前的DOM节点方法获取<caption>

  alert(table.children[0].innerHTML);    
             
//获取caption的内容

PS:这里使用了children[0]本身就忽略了空白,如果使用firstChild或者childNodes[0]需要更多的代码(基础篇中的去处空白文本节点代码)

//按HTML DOM来获取表格的<caption>

alert(table.caption.innerHTML);   
             
       //获取caption的内容

//按HTML
DOM来获取表头表尾<thead>、<tfoot>

alert(table.tHead); 
             
             
             
//获取表头

alert(table.tFoot);         
             
             
       //获取表尾

//按HTML DOM来获取表体<tbody>

  alert(table.tBodies);      
             
             
             
//获取表体的集合

PS:因为在一个表格中<thead>和<tfoot>是唯一的,只能有一个。而<tbody>不是唯一的可以有多个,这样导致最后返回的<thead>和<tfoot>是元素引用,而<tbody>返回的是元素集合。

//按HTML DOM来获取表格的行数

  alert(table.rows.length);      
             
             
       //获取行数的集合,数量

//按HTML DOM来获取表格主体(tbody)里的行数

  alert(table.tBodies[0].rows.length);    
             
//获取主体的行数的集合,数量

//按HTML DOM来获取表格主体内第一行的单元格数量(tr)

  alert(table.tBodies[0].rows[0].cells.length); 
       //获取第一行单元格的数量

//按HTML DOM来获取表格主体内第一行第一个单元格的内容(td)

  alert(table.tBodies[0].rows[0].cells[0].innerHTML);   
//获取第一行第一个单元格的内容

//按HTML DOM来删除标题、表头、表尾、行、单元格

table.deleteCaption();  
             
             
       //删除标题

table.deleteTHead();    
             
             
       //删除<thead>

table.tBodies[0].deleteRow(0);    
             
       //删除<tr>一行

table.tBodies[0].rows[0].deleteCell(0);
             
//删除<td>一个单元格

//按HTML
DOM创建一个表格     


 1 var table = document.createElement(‘table‘);
2
3 table.border = 1;
4
5 table.width = 300;
6
7
8
9 table.createCaption().innerHTML = ‘人员表‘;
10
11
12
13 //table.createTHead();
14
15     //table.tHead就表示返回thead的引用,但不建议这么做,会混淆
16
17 //table.tHead.insertRow(0);
18
19 var thead = table.createTHead();
20
21
22
23 var tr = thead.insertRow(0);
24
25 var td1 = tr.insertCell(0);
26
27 td1.appendChild(document.createTextNode(‘数据1‘));
28
29 var td2 = tr.insertCell(1);
30
31 td2.appendChild(document.createTextNode(‘数据2‘));
32
33 /*或者
34
35 var tr = thead.insertRow(0);
36
37 tr.insertCell(0).innerHTML = ‘数据1‘;
38
39 tr.insertCell(1).innerHTML = ‘数据2‘;
40
41 tr.insertCell(2).innerHTML = ‘数据3‘;
42
43 */
44
45 document.body.appendChild(table);

PS:在创建表格的时候<table>、<tbody>、<th>没有特定的方法,需要使用document来创建。也可以模拟已有的方法来编写特定的函数即可,例如:insertTH()之类的。

 

时间: 2024-10-12 00:44:30

DOM系列---DOM操作表格的相关文章

DOM系列---DOM操作样式

发文不易,若转载传播,请亲注明出处,谢谢! 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别. DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息. DOM一致性检测 功能 版本号 说明 Core 1.0.2.0.3.0 基本的DOM,用于表

DOM操作表格

前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量的代码.本文将详细介绍DOM操作表格的属性和方法 需求 要通过DOM实现下列格式的表格结构 <table border = "1" width = "100%">     <tbody>         <tr>           

19.DOM操作表格及样式

DOM操作表格及样式 学习要点:1.操作表格2.操作样式 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格<table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). //需要操作table<table border = "1

轻松学习JavaScript二十三:DOM编程学习之操作表格

一使用HTML标签创建表格: 代码: <span style="font-size:18px;"><table border="1px"width="300px"> <caption>人员表</caption> <thead> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th>

JavaScript学习9:DOM操作表格及样式

DOM在操作生成HTML上,还是比较简单明了的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.那本文今天就来了解一下DOM如何操作表格和样式. 一 操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它. 下面我们就使用DOM来创建一个表格: <span style="font-size:18px;">window.onload=function(){ var table

DOM / DOM操作表格

DOM [获取层次节点的常用属性] 1 .childNodes:(数组)获取UL里面的所有子节点(包含元素节点/文本节点): 2 .firstChild:获取元素的第一个子节点: 3 .lastChild: 获取元素的最后一个子节点: 4 .ownerDocument:获取当前文档根节点.在HTML文档中,为document节点: 5 .parentNode: 获取当前节点的父节点: 6 .previousSibling:获取当前节点的前一个兄弟节点: 7 .nextSibling: 获取当前节

第21章 DOM操作表格及样式

学习要点: 1.操作表格 2.操作样式 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). //需要操作的table <table border="1" w

JavaScript(第二十天)【DOM操作表格及样式】

DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). //需要操作的table <table border="1" width="300"

DOM系列---基础篇

DOM (Document Object Model) 即文档对象模型, 针对 HTML 和 XML 文档的 API (应用程序接口) .DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM 产生于 网景公司及微软公司创始的 DHTML(动态 HTML) ,但现在它已经成为表现和操作页面标记的真正跨平台.语言中立的方式. DOM 中的三个字母: D(文档)可以理解为整个 Web 加载的网页文档: O(对象)可以理解为类似 window 对象之类的东西,可以调用属性