- 浏览: 435140 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (167)
- 技术文章 (26)
- HTML & XHTML & XML (16)
- javascript (11)
- ajax (1)
- css (8)
- spring (1)
- hibernate (8)
- struts (4)
- SEO&SEM (6)
- php (13)
- MySQL (11)
- Oracle (1)
- 学习笔记 (26)
- 技术文档下载 (6)
- 笔随心动 (16)
- 奇闻天下 (7)
- 其他文档 (10)
- Unity3d (1)
- memcached (1)
- PHP 浏览器版本 os 操作系统版本 (1)
- maven (1)
- Android (1)
- php是 (1)
- lower_case_table_names=1 (1)
最新评论
-
18335864773:
目前 用pageoffice组件的比较多.POI对Office ...
Poi的一个实例——用SQL动态导出Excel文件 -
afreon:
http://blog.yoodb.com/yoodb/art ...
org.hibernate.WrongClassException 错误解决 -
springaop_springmvc:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven Pom.xml 元素详解 -
影非弦:
显示的是A server error has occurred ...
DWR 弹出Error 解决 -
xu3352:
非常不错,:idea: ,感谢楼主
CSS3 中文文档
这篇文章简单介绍了DOM 1.0一些基本而强大的方法以及如何在JavaScript中使用它们。你可以学到如何动态地创建、获取、控制和删除HTML元素。这些DOM方法同样适用于XML。所有全面支持DOM 1.0的浏览器都能很好地运行本篇的实例,比如IE5,Firefox等。
概况 - Sample1.html
这篇文章通过实例代码介绍DOM。请从尝试下面的HTML例子开始。它使用DOM 1的方法由JavaScript动态创建一个HTML表格。它创建一个由四个包含文本内容的单元格组成的小表格。单元格的文字内容是:“单元格是第y行第x列”,表示单元格在表格中的行数和列数。
<html> <head> <title>实例代码 - 使用JavaScript和DOM创建HTML表格</title> <script> function start() { //获取body标签 var mybody = document.getElementsByTagName("body")[0]; // 创建一个<table>元素和一个<tbody>元素 mytable = document.createElement("table"); mytablebody = document.createElement("tbody"); //创建所有的单元格 for(var j = 0; j < 2; j++) { // 创建一个<tr>元素 mycurrent_row = document.createElement("tr"); for(var i = 0; i < 2; i++) { // 创建一个<td>元素 mycurrent_cell = document.createElement("td"); //创建一个文本节点 currenttext = document.createTextNode("单元格是第"+j+"行,第"+i+"列"); // 将创建的文本节点添加到<td>里 mycurrent_cell.appendChild(currenttext); // 将列<td>添加到行<tr> mycurrent_row.appendChild(mycurrent_cell); } // 将行<tr>添加到<tbody> mytablebody.appendChild(mycurrent_row); } // 将<tbody>添加到<table> mytable.appendChild(mytablebody); //将<table>添加到<body> mybody.appendChild(mytable); // 将表格mytable的border属性设置为2 mytable.setAttribute("border", "2"); } </script> </head> <body onload="start()"> </body> </html>
注意我们创建各元素和文字节点的顺序:
1.创建< table >元素
2.创建< table >的子元素< tbody >
3.使用一个循环来创建< tbody >的子元素< tr >
4.分别使用循环为每一个< tr >创建子元素< tb >
5.为每一个< tb >创建文本节点
创建完< table >,< tbody >,< tr >,< td >元素和文本节点,我们使用相反的顺序把它们分别添加到自己的父节点。
1.将创建的文本节点添加到< td >里
mycurrent_cell.appendChild(currenttext);
2.将列< td >添加到行< tr >
mycurrent_row.appendChild(mycurrent_cell);
3.将行< tr >添加到< tbody >
mytablebody.appendChild(mycurrent_row);
4.将< tbody >添加到< table >
mytable.appendChild(mytablebody);
5.将< table >添加到< body >
mybody.appendChild(mytable);
记住这个方法。当你使用W3C DOM时会经常用到它。首先,你从上向下建立元素;然后从下向上把它们添加到父节点。
这是JavaScript代码生成的HTML:
...
<table border=5>
<tr><td>单元格是第0行,第0列</td><td>单元格是第0行,第1列</td></tr>
<tr><td>单元格是第1行,第0列</td><td>单元格是第1行,第1列</td></tr>
</table>
...
这是代码生成的表格元素和它的子元素的DOM对象树:
你只需使用少量的DOM方法就可以构造这样一个表格和他的子元素。记住要时刻谨记你将创建的构造的模型树;这样会使编写代码更加简单。在图中的< table >树里,< table >有一个子元素< tbody >。< tbody >有两个子元素。< tbody >的每个子元素(< tr >)都有两个子元素< td >。最后,每个< td >有一个子元素:一个文本节点。
基本的DOM方法 - Sample2.html
getElementByTagName方法适用于文档和元素,所以文档根对象和所有的元素对象一样有 getElementByTagName 方法。你可以使用 element.getElementsByTagName(tagname) 来获取某个元素所有子元素的列表,使用标签名选择它们。
element.getElementsByTagName 返回一个有特定标签名的子元素的列表。你可以通过调用一个item方法(传递一个index参数给它)来从这个子元素列表中获取一个元素。请注意列表第一个子元素的index为0。下一个主题继续前面的Table例子。下面这个实例更加简单,显示了一些基本的方法:
<html> <head> <title>实例代码 - 使用JavaScript和DOM创建HTML表格</title> <script> function start() { // 获取一个包含所有body元素的列表(将只有一个) // 然后选择列表里的第一个元素 myBody = document.getElementsByTagName("body")[0]; // 获取body字元素中所有的p元素 myBodyElements = myBody.getElementsByTagName("p"); //获取p元素列表的第二个元素(索引从0开始) myP = myBodyElements[1]; } </script> </head> <body onload="start()"> <p>hi</p> <p>hello</p> </body> </html>
在这个例子里,我们设置myP变量为表示body里第二个p元素的DOM对象。
1.获取一个包含所有body元素的列表
myBody = document.getElementsByTagName("body")[0];
因为一个有效的html文档只有一个body元素,这个列表讲只有一项。我们通过使用 [0] 选取列表的第一个元素来得到它。
2.获取blog子元素里所有的p元素
myBodyElements = myBody.getElementsByTagName("p");
3.选取p元素列表的第二项
myP = myBodyElements[1];
一旦获得一个html元素的DOM对象,你就可以设置它的属性。比如,你想设置style background color属性,只需要添加:
myP.style.background = "rgb(255,0,0)";
使用document.createTextNode(”..”)创建文本节点
使用文档对象调用createTextNode方法建立你的文本节点。你只需要输入文本内容。返回值是一个表示这个文本节点的对象。
myTextNode = document.createTextNode("world");
以上代码创建一个文本数据是“word”的TEXT_NODE类型(文字块)节点,变量myTextNode指向这个节点对象。你需要设置这个文本节点为其他节点元素的字节点来插入这个文本到你的html页面里。
使用appendChild(..)插入元素
所以,通过调用myP.appendChild([node_element]),你设置这个文本节点为第二个p元素的字节点。
myP.appendChild(myTextNode);
测试这个例子,注意“hello”和“world”两个词是连在一起的:“helloworld”。所以在当你看到html页面时两个文本节点hello和world看起来好像是一个节点,而实际上在这个文档模型里有两个节点。第二个节点是一个新的TEXT_NODE类型节点,并且是第二个p标签的第二个字节点。下图在文档树里显示了刚创建的文本节点。
createTextNode和appendChild是在hello和world之间添加空格的一种简单的方法。需要特别注意的是appendChild方法将添加在最后一个子节点后面,就像world被添加到hello后面。所以如果你想在hello和world之间添加一个文本节点需要使用insertBefore方法而不是appendChild。
使用文档对象和createElement(..)方法创建新元素
你可以使用createElement方法创建新的HTML元素或者其他任何你想要的其他元素。例如,如果你想为< body >元素添加一个字节点< p >元素,可以使用前例中的myBody添加一个新的元素节点。创建一个节点只需要调用document.createElement(”tagname”)。例如:
myNewPTAGnode = document.createElement("p");
myBody.appendChild(myNewPTAGnode);
使用removeChild(..)方法删除节点
每个节点都可以删除。下面这行代码删除myP(第二个< p >元素)里包含单词world的文本节点。
myP.removeChild(myTextNode);
最后你可以把包含单词world的文本节点myTextNode添加到新创建的< p >元素里:
myNewPTAGnode.appendChild(myTextNode);
修正的对象树最后像这样:
动态创建一个表格(回到Sample1.html)
文章的剩余部分将回到Sample1.html。下图显示了例子中创建的表格的对象树结构。
回顾HTML表格结构
创建元素节点并把它们添加到文档树
创建sample1.html里的表格的基本步骤:
获取body对象(文档对象的第一项)
创建所有的元素
最后,按照上图的表格结构添加每一个字节点下面的源代码是sample1.html的注释
start函数的最后有一行新代码,使用另一个DOM方法setAttribute设置了表格的border属性。setAttribute方法有两个参数:属性名和属性值。你可以使用setAttribute方法设置任何元素的任何属性。
<head> <title>实例代码 - 使用JavaScript和DOM创建HTML表格</title> <script> function start() { // 获取body var mybody = document.getElementsByTagName("body")[0]; // 创建<table>和<tbody>元素 mytable = document.createElement("table"); mytablebody = document.createElement("tbody"); //创建所有的单元格 for(var j = 0; j < 2; j++) { // 创建一个 <tr> 元素 mycurrent_row = document.createElement("tr"); for(var i = 0; i < 2; i++) { // 创建一个<td> 元素 mycurrent_cell = document.createElement("td"); // 创建一个文本节点 currenttext = document.createTextNode("单元格是第" + j + "行,第" + i + "列"); // 把创建的文本节点添加到<td>元素 mycurrent_cell.appendChild(currenttext); // 把<td>添加到<tr>行 mycurrent_row.appendChild(mycurrent_cell); } // 把<tr>行添加到<tbody> mytablebody.appendChild(mycurrent_row); } // 把 <tbody> 添加到 <table> mytable.appendChild(mytablebody); // 把 <table> 添加到 <body> mybody.appendChild(mytable); // 把mytable的border属性设置为2; mytable.setAttribute("border","2"); } </script> </head> <body onload="start()"> </body> </html>
使用DOM和CSS处理表格
从表格中获取一个文本节点
这个例子介绍两个新的DOM属性。首先使用childNodes属性获取mycel的字节点列表。这个childNodes列表包含所有的字节点,不管它们的名称和类型是什么。像getElementsByTagName方法一样,它返回一个字节点列表,使用 [ x ] 来获取想要的字节点项。这个例子将myceltext存储为表格第二行第二个单元格的文本节点。最后,它创建一个新的包含myceltext 的data 属性 的文本节点,并使它成为< body >元素的子节点,来显示这个例子的最后结果。
如果你的对象是文本节点,你可以使用data属性来获取它的内容
mybody = document.getElementsByTagName("body")[0];
mytable = mybody.getElementsByTagName("table")[0];
mytablebody = mytable.getElementsByTagName("tbody")[0];
myrow = mytablebody.getElementsByTagName("tr")[1];
mycel = myrow.getElementsByTagName("td")[1];
// mycel的字节点列表的第一项
myceltext=mycel.childNodes[0];
// currenttext的内容是myceltext的data
currenttext=document.createTextNode(myceltext.data);
mybody.appendChild(currenttext);
获取一个属性值
在sample1的最后有一个单元格使用了mytable对象的setAttribute方法。这个单元格用来设置这个表格的border属性。使用getAttribute方法来获取这个属性:
mytable.getAttribute("border");
通过改变style属性隐藏列
当你使用一个JavaScript变量指向对象,你可以立即设置它的style属性。下面的代码是sample1.html的修改,第二列的单元格都被隐藏,第一列的单元格背景改为红色。注意style属性是直接设置的。
<html> <body onload="start()"> </body> <script> function start() { var mybody =document.getElementsByTagName("body")[0]; mytable = document.createElement("table"); mytablebody = document.createElement("tbody"); for(var j = 0; j < 2; j++) { mycurrent_row=document.createElement("tr"); for(var i = 0; i < 2; i++) { mycurrent_cell = document.createElement("td"); currenttext = document.createTextNode("单元格是:" + i + j); mycurrent_cell.appendChild(currenttext); mycurrent_row.appendChild(mycurrent_cell); // 如果在第0列设置单元格背景色 // 如果在第1列隐藏单元格 if (i == 0) { mycurrent_cell.style.background = "rgb(255,0,0)"; } else { mycurrent_cell.style.display = "none"; } } mytablebody.appendChild(mycurrent_row); } mytable.appendChild(mytablebody); mybody.appendChild(mytable); } </script>
发表评论
-
Webstorm 注册
2013-07-19 13:25 0WebStorm注册码 User Name: EMBRA ... -
简易刷帖器
2013-06-05 13:18 1309闲暇之余,弄了个简易刷新器。由于用到了iframe遇到个问题 ... -
IPhone支持的CSS3渐变
2012-05-03 17:55 1314background-image:-moz-linear ... -
CSS之clip属性解惑
2011-11-16 18:24 1336日前做项目时遇到一个局部遮罩的问题,查了下css手册的cli ... -
Html5支持iPhone触屏的脚本
2011-07-12 11:27 8677移动平台的触屏JS代码 ... -
不错的颜色混合器
2009-02-13 10:29 3122原址:http://meyerweb.com/eric/too ... -
javascript 事件冒泡
2009-02-11 15:38 963<!DOCTYPE html PUBLIC " ... -
JSP中文编码问题
2009-02-10 08:36 1453最基本的乱码问题 这个 ... -
HTTP 参考
2009-02-05 15:43 981一、HTTP码应码 响应码由三位十进制数字组成,它们出现在由H ... -
HTTP请求模型
2009-02-05 15:41 1414一、连接至Web服务器 一个客户端应用(如Web浏览器)打开到 ... -
SHTML和HTML的区别
2009-01-28 00:04 1140问起SHTML和HTML的区 ... -
Displaytag 详解
2009-01-27 23:36 2942官方:http://displaytag.sourceforg ... -
Java中四种XML解析技术
2009-01-23 22:57 970Java中四种XML解析技术 ... -
使用mailto
2009-01-23 11:14 1700大家知道,mailto是网页设计制作中的一个非常实用的ht ... -
Alt & Title 使用技巧
2009-01-23 10:54 1086当浏览器卖主扭曲 ... -
Meta 标签使用详解
2009-01-23 10:13 885meta是html语言head区的一个辅助性标签。几乎所有的网 ...
相关推荐
table对象是HTML表格元素的DOM表示,它有一些属性和方法用于操作表格: - `align`、`background`、`bgColor`、`border`、`borderColor`:设置或获取表格的布局和样式属性。 - `offsetHeight`、`offsetLeft`、`...
DOM将网页解析成一个结构化的对象树,使得我们可以使用JavaScript或其他脚本语言来动态地操纵网页内容。在这个文档中,主要讨论了HTML DOM中的...在实际开发中,掌握DOM操作是提高网页应用性能和功能的关键技能之一。
DOM中常见的对象包括Select、Option、Table、TableRow、TableCell等,这些对象有着特定的属性和方法,比如Select对象的选项数、Option对象的文本和值、Table对象的行和列操作等。 2. BOM模型(浏览器对象模型) BOM...
在本主题"js表格操作,DOM实现数据动态增删查改"中,我们将深入探讨如何使用原生JavaScript通过DOM操作来实现数据在表格中的动态管理。 1. **创建表格**:首先,我们需要在HTML中创建一个基础的表格结构。这通常...
在JavaScript中,我们可以使用`document.getElementById("table1")`方法来获取ID为`table1`的表格对象。 2. 遍历表格中的每一行 通过循环遍历表格中的每一行,我们可以检查新输入的排名是否已经存在。如果存在,就...
### DOM常用属性和方法 ... 在DOM(Document Object Model,文档对象模型)的世界里...掌握了DOM的基本概念和使用方法后,就可以更加灵活地处理各种网页开发任务。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。
3. DOM操作: - `Document`对象提供了诸如`createAttribute()`、`createComment()`、`createElement()`和`createTextNode()`等方法来创建新的节点,并通过`getElementById()`和`getElementsByTagName()`来查找特定...
实验报告的主题是“JavaScript程序设计——DOM访问”,其目的是深入理解和掌握DOM(Document Object Model)在JavaScript中的应用,包括文档对象的属性、方法以及使用方式。DOM是HTML和XML文档的标准化表示,允许...
DOM操作表格主要涉及以下几个方面: 1. **获取表格元素**:可以使用`document.getElementById()`、`document.querySelector()`或`document.querySelectorAll()`来获取表格、行、列或单元格。例如,`document....
jQuery是一个广泛使用的JavaScript库,简化了DOM操作、事件处理和Ajax交互。HTML表格(table)是网页中组织结构化数据的常见方式,而Excel则是一种流行的电子表格应用程序,用于处理和分析数据。 要将HTML表格转换...
Layui是一个前端UI框架,它提供了一...对于前端开发者来说,掌握如何操作DOM元素以及如何利用事件驱动的编程模式是十分必要的。通过对Layui组件Table的深入学习和实践,可以有效地提高前端开发的效率和页面的交互性。
在JavaScript中,我们可以通过DOM提供的方法对文档进行操作。例如,`document.createElement()`用于创建新的元素节点,`document.createTextNode()`创建文本节点,`document.getElementById()`找到具有特定ID的元素...
在实际应用中,JavaScript的Table表格对象还可以结合Ajax实现异步数据加载,或者使用框架如jQuery、React、Vue等进行更复杂的表格操作。通过熟练掌握这些方法,开发者可以创建出交互性更强、功能更丰富的Web应用表格...
【Web程序开发:第15章 DOM操作】 在Web程序开发中,DOM(Document Object Model)扮演着至关重要的角色。DOM是一种国际标准,由W3C(万维网联盟)制定,它为HTML和XML文档提供了统一的访问和操作方式。DOM的核心...
这部分定义了DOM中的基础接口,例如Element、Node、CharacterData等,它们构成了DOM操作的基本构建块。 1.2. 扩展接口 除了基本接口之外,DOM还包含扩展接口,如DocumentFragment、Attr和DocumentType,它们提供了...
在网页开发中,jQuery是一个非常流行的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互等任务。本篇文章将深入探讨如何使用jQuery来动态地给HTML表格(table)赋值,通过一个具体的实例来展示相关技巧。...
// 使用方法 addRow('李四', '30', '上海'); ``` 2. **删除行** 删除指定行,通常会根据用户的选择,例如删除选中的行: ```javascript function deleteRow(rowIndex) { if (table.rows.length > 1) { // ...
在IT行业中,jQuery是一款广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理、动画设计以及Ajax交互。在这个“全面的table操作解压即可使用”的压缩包中,我们可以期待找到一系列关于如何使用jQuery来增强...