|
简介
这篇文章简单介绍了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> 注意我们创建各元素和文字节点的顺序:
创建完< table >,< tbody >,< tr >,< 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时会经常用到它。首先,你从上向下建立元素;然后从下向上把它们添加到父节点。 ...
<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对象树: <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对象。 myBody = document.getElementsByTagName("body")[0];
因为一个有效的html文档只有一个body元素,这个列表讲只有一项。我们通过使用 [0] 选取列表的第一个元素来得到它。 myBodyElements = myBody.getElementsByTagName("p");
3.选取p元素列表的第二项 myP = myBodyElements[1];
myP.style.background = "rgb(255,0,0)";
使用document.createTextNode(”..”)创建文本节点 myTextNode = document.createTextNode("world");
以上代码创建一个文本数据是“word”的TEXT_NODE类型(文字块)节点,变量myTextNode指向这个节点对象。你需要设置这个文本节点为其他节点元素的字节点来插入这个文本到你的html页面里。 myP.appendChild(myTextNode);
测试这个例子,注意“hello”和“world”两个词是连在一起的:“helloworld”。所以在当你看到html页面时两个文本节点 hello和world看起来好像是一个节点,而实际上在这个文档模型里有两个节点。第二个节点是一个新的TEXT_NODE类型节点,并且是第二个p标 签的第二个字节点。下图在文档树里显示了刚创建的文本节点。
|
本文通过实例展示了如何利用DOM1.0方法与JavaScript动态创建HTML表格,包括创建、获取、控制及删除HTML元素的基本操作。



375

被折叠的 条评论
为什么被折叠?



