Javascript实例教程:DOM方法创建和修改表格

文章简介:Javascript实例教程:DOM方法创建和修改表格.

<table>元素是HTML中最复杂的结构之一。要想创建表格,一般都必须涉及表示表格行、单元格、表头等方面的标签。由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量的代码。假设我们要使用DOM来创建下面的HTML表格:

<table border="1" width="100%">
    <tbody>
        <tr>
            <td>Cell 1,1</td>
            <td>Cell 2,1</td>
        </tr>
        <tr>
            <td>Cell 1,2</td>
            <td>Cell 2,2</td>
        </tr>
    </tbody>
</table>

要是用核心DOM方法创建这些元素,得需要像下面这么多的代码:

//创建table
var table = document.createElement("table");
table.border = 1;
table.width = "100%";

//创建tbody
var tbody = document.createElement("tbody");
table.appendChild(tbody);

//创建第一行
var row1 = document.createElement("tr");
tbody.appendChild(row1);
var cell1_1 = document.createElement("td");
cell1_1.appendChild(document.createTextNode("Cell 1,1"));
row1.appendChild(cell1_1);
var cell2_1 = document.createElement("td");
cell2_1.appendChild(document.createTextNode("Cell 2,1"));
row1.appendChild(cell2_1);

//创建第二行
var row2 = document.createElement("tr");
tbody.appendChild(row2);
var cell1_2 = document.createElement("td");
cell1_2.appendChild(document.createTextNode("Cell 1,2"));
row2.appendChild(cell1_2);
var cell2_2 = document.createElement("td");
cell2_2.appendChild(document.createTextNode("Cell 2,2"));
row2.appendChild(cell2_2);

//将表格插入到文档主题中
document.body.appendChild(table);

显然,DOM代码很长,还有点不太好懂。为了方便构建表格,HTML DOM 还为<table>、<tbody>和<tr>元素添加了一些属性和方法。

为<table>元素添加的属性和方法如下:

  • caption:保存这对<caption>元素(如果有)的指针;
  • tBodies:是一个<tbody>元素的HTMLCollection;
  • tFoot:保存着对<tfoot>元素(如果有)的指针;
  • tHead:保存着对<thead>元素(如果有)的指针
  • rows:是一个表格中所有行的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集合中的指定位置插入一个单元格,返回新插入单元格的引用。

使用这些属性和方法,可以极大的减少创建报个所需要的代码数量。例如,使用这些属性和方法可以将前面的代码重写如下:

//创建table
var table = document.createElement("table");
table.border = 1;
table.width = "100%";

//创建tbody
var tbody = document.createElement("tbody");
table.appendChild(tbody);
tbody.insertRow(0);
tbody.rows[0].insertCell(0);
tbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1"));
tbody.rows[0].insertCell(1);
tbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1"));

//创建第一行
tbody.insertRow(1);
tbody.rows[1].insertCell(0);
tbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2"));
tbody.rows[1].insertCell(1);
tbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2"));

//将表格添加到文档主题中
document.body.appendChild(table);

在这次代码中,创建<table>和<tbody>的代码没有变化。不同是创建两行的部分,其中使用了HTML DOM定义的表格属性和方法。在创建第一行时,通过<tbody>元素调用了insertRow()方法,传入了参数0——表示应该插入的行放在什么位置上。执行这一样的代码后,就会自动创建一行并将其插入到<tbody>元素的位置0上。因此马上就可以通过tbody.rows[0]来引用新插入的行。

创建单元格的方式也十分相似,即通过<tr>元素调用insertCell()方法并传入放置单元格的位置。然后,就可以通过tbody.rows[0].cells[0]来引用新插入的单元格,因为新创建的单元格被插入到了这一行的位置0上。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索表格
, cell
, 元素
, document
, insertrow
, #创建方法
, appendChild
, tbody
, 创建方法
, table添加一行
, table删除一行
, Table使用教程
, createElement
dom元素位置
,以便于您获取更多的相关知识。

时间: 2024-08-22 14:12:59

Javascript实例教程:DOM方法创建和修改表格的相关文章

Javascript实例教程:querySelectorAll()方法

文章简介:只要调用querySelectorAll()都会返回一个StaticNodeList对象不管匹配的元素有几个:如果没有匹配,那么StaticNodeList为空.querySelectorAll()和querySelector()一样存在与Document和Element类型上. querySelectorAll()接受和querySelecort()一样的两个参数,即CSS查询和可选的命名空间解析器,但是返回的是所有匹配的节点而非单个.该方法返回一个叫做StaticNodeList的

Javascript实例教程:querySelector()方法

文章简介:querySelector()方法接受一个CSS查询并返回匹配模式的第一个子孙元素,如果没有匹配的元素则返回null. querySelector()方法接受一个CSS查询并返回匹配模式的第一个子孙元素,如果没有匹配的元素则返回null.请看下面的例子: //获取body元素 var body = document.querySelector("body"); //获取ID为myDiv的元素 var myDiv = document.querySelecotr("#

Javascript实例教程(1) 目录

javascript|教程 javascript是一种基于对象和事件驱动并具有安全性能的脚本语言.使用它的目的是与HTML超文本标记语言.Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用,从而可以开发客户端的应用程序等.它是通过嵌入或调入在标准的HTML语言中实现的.它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择.本javascript实例教程旨在通过介绍一些实例来加深对Javascrip的理解.本系列教程包括:1. 利用jav

js在浏览器兼容教程:DOM方法及对象引用

文章简介:js在浏览器兼容教程:DOM方法及对象引用. 1. getElementById [分析说明]先来看一组代码: <!-- input对象访问1 --><input id="id" type="button" value="click me" ōnclick="alert(id.value)"/> 在Firefox中,按钮没反应,在IE中,就可以,因为对于IE来说,一个HTML 元素的 ID 可

Javascript实例教程(19) 数组

javascript|教程|数组 使用javascript数组 在javascript 1.0中构造器只存在Date对象和用户定义的对象.你可能期望有个数组构造器,但是一直没能实现,直到javascript 1.1的出现,你的期望成为了现实.我们可以如下来定义用户对象: function blankArray(n) { for (var i=0; i < n; i++) this[i] = null; this.length = n; } blankArray函数创建了一个数组,这个数组中有n个

Javascript实例教程(18) 数组

javascript|教程|数组 使用Javascript数组 在JavaScript 1.0中构造器只存在Date对象和用户定义的对象.你可能期望有个数组构造器,但是一直没能实现,直到JavaScript 1.1的出现,你的期望成为了现实.我们可以如下来定义用户对象: function blankArray(n) { for (var i=0; i < n; i++) this[i] = null; this.length = n; } blankArray函数创建了一个数组,这个数组中有n个

Javascript实例教程:原型对象

文章简介:我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.如果按照字面量的意思来理解,那么prototype就是通过调用构造函数而创建的那个对象实例的原型对象.使用原型对象 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.如果按照字面量的意思来理解,那么prototype就是通过调用

Javascript实例教程(20) 使用HoTMetal(6)

javascript|教程 HoTMetal中使用javascript 6.怎样编写一个保存模块脚本 在本节教程的例子中,我们创建了一个新的保存模块文件对话框.HoTMetaL里面有几个模板你可以从中进行选择.模板只是一个普通的网页,这个网页被保存HoTMetaL应用程序目录的Template模板中.当你从文件菜单中选择新项目的时候,其中一个标签选项是Page From Template.当你选择了它,就会弹出一个标签对话框,上面包含了各种模板: General. WebTV. W3C. Fra

Javascript实例教程(18) 使用字符串函数

javascript|函数|教程|字符串 使用javascript的字符串函数 字符串对象提供了许多方法,但是很少的程序设计人员充分利用它们,这对于一个程序员来说,不能不说这是一种缺陷.字符串提供的方法可以用于操作字符.产生HTML标签以及搜索字符串等等. 下面首先说说什么是字符串.在javascript语言中,字符串就是一种对象.就象在Java中,它们不是作为一系列的字符被存储的,所以字符串的操作必须使用内置的构造器和设置函数来完成.在后来的版本中有了字符串构造器和更多的关于对象的概念.在这个