`
easonfans
  • 浏览: 254684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 动态生成表格‏

阅读更多

javascript 动态生成表格‏

一次翻译技术文章,本身英语水平很烂,翻译的也是自己刚开始学习的技术,所以能勉强看懂英文的话都要尽量读原文而不要看我的翻译,免得被误导。阅读原文
简介
  这篇文章简单介绍了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>
functionstart(){
//获取body标签
varmybody=document.getElementsByTagName("body")[0];

// 创建一个<table>元素和一个<tbody>元素
mytable=document.createElement("table");
mytablebody=document.createElement("tbody");

//创建所有的单元格
for(varj=0;j<2;j++){
  // 创建一个<tr>元素
  mycurrent_row=document.createElement("tr");
  for(vari=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>
<bodyonload="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:

...
<tableborder=5>
<tr><td>单元格是第0行,第0列</td><td>单元格是第0行,第1列</td></tr>
<tr><td>单元格是第1行,第0列</td><td>单元格是第1行,第1列</td></tr>
</table>
...

这是代码生成的表格元素和它的子元素的DOM对象树:
sample1-tabledom.jpg
  你只需使用少量的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>
functionstart(){
// 获取一个包含所有body元素的列表(将只有一个)
// 然后选择列表里的第一个元素
myBody=document.getElementsByTagName("body")[0];

// 获取body字元素中所有的p元素
myBodyElements=myBody.getElementsByTagName("p");

//获取p元素列表的第二个元素(索引从0开始)
myP=myBodyElements[1];
}
</script>
</head>
<bodyonload="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];

sample2a2.jpg
一旦获得一个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标签的第二个字节点。下图在文档树里显示了刚创建的文本节点。
sample2b2.jpg

createTextNode和appendChild是在hello和world之间添加空格的一种简单的方法。需要特别注意的是 appendChild方法将添加在最后一个子节点后面,就像world被添加到hello后面。所以如果你想在hello和world之间添加一个文本节点需要使用insertBefore方法而不是appendChild。

来源:http://www.51testing.com/?uid-195689-action-viewspace-itemid-133777 

分享到:
评论

相关推荐

    JavaScript动态生成表格案例

    这是一个动态生成表格的 HTML 页面,使用了 JavaScript 动态生成表格内容。这个表格显示了一组学生的成绩信息,包括姓名、科目和得分,并提供了删除操作。 在页面中,先声明了一个 table 元素,并设置了 id 为 ...

    extjs动态生成表格,前台+后台

    在本文中,我们将深入探讨如何使用ExtJS框架在前端动态生成表格,并结合后端数据进行展示。ExtJS是一个强大的JavaScript库,专用于构建富客户端Web应用程序,尤其在创建交互式用户界面方面表现突出。动态生成表格是...

    js动态生成表格

    在JavaScript(JS)中动态生成表格是一项常见的任务,特别是在网页交互和数据展示中。这篇文章将深入探讨如何利用JS实现这一功能,以及相关的源码和工具。 首先,我们要明白HTML表格的基本结构,它由`&lt;table&gt;`、`...

    老裴帮助关于Javascript动态创建表格的小练习

    在这个特定的练习中,我们将探讨如何使用JavaScript动态地生成表格,这对于构建交互式Web应用或者处理动态数据展示是非常有用的。 在描述中提到的博文链接(已省略)可能提供了一个详细的步骤指南或者示例代码,以...

    javaScipt动态生成表格

    通过javaScript动态生成表格,其中也使用了div和css,对样式进行动态设置。

    javascript下动态创建表格的三种方式

    ### JavaScript 下动态创建表格的三种方式 在网页开发过程中,经常需要通过JavaScript来动态地创建或更新HTML元素,其中就包括表格(`&lt;table&gt;`)。本文将详细介绍在JavaScript中动态创建表格的三种常见方法,并对每...

    动态生成表格工具类

    在IT行业中,动态生成表格是一项常见的需求,尤其是在数据展示、报表生成或用户交互场景下。本文将基于"动态生成表格工具类"这一主题,详细探讨如何利用Java编程语言来实现这样的功能。 首先,理解动态生成表格的...

    Javascript动态创建表格

    Javascript动态创建表格 兼容google浏览器、360,ie等浏览器,很实用

    js动态生成表格行列特效.zip

    在JavaScript编程中,动态生成表格是一项常见的需求,特别是在网页交互设计中。本示例"js动态生成表格行列特效.zip"提供了实现这一功能的实例代码,包括HTML5、JavaScript和CSS三部分,允许开发者创建出具有视觉吸引...

    javascript动态增删表格行

    javascript动态增删表格行

    JavaScript 动态表格

    用JavaScript制作的动态表格,有添加、删除、全选、全不选,有对动态新增的域校验问题,有对新增的域设置readonly问题,还有对新增域中的span进行隐藏问题都有解决,还有对动态表格的讲解PPT一份。

    JS实现动态生成表格并提交表格数据向后端

    在本文中,我们将探讨如何使用JavaScript(JS)动态生成表格,并将表格中的数据提交到后端服务器。动态生成表格是Web开发中常见的需求,特别是在需要用户输入数据并提交给服务器进行处理的场景中。掌握这一技能对于...

    JavaScript动态生成表格的示例

    通过JS来写动态的表格(有多少组数据,就自动创建多少行表格) 为学习和演示,采用固定的数据,不涉及调用后台数据 代码实现: HTML内容: 姓名 科目 成绩 操作 &lt;tbody&gt;&lt;/tbody&gt; CSS内容: table ...

    JavaScript实现网页动态生成表格

    JavaScript(JS)网页–动态生成表格,供大家参考,具体内容如下 在网页中,动态生成列表的内容,将数组中的object加入到列表中(没学到数据库)。在HTML中创建thead,然后通过JavaScipt动态生成tbody。并且在每行...

    FaceTest[存储过程和JSON及Jquery]动态生成表格及分页

    在IT行业中,动态生成表格和实现分页是常见的前端数据展示技术,特别是在Web应用程序中。本项目"FaceTest"结合了后端存储过程、JSON数据格式以及前端的jQuery库,来实现这一功能。下面我们将详细探讨这三个关键组件...

    js读取json数据动态生成列数不固定的表格

    在JavaScript(简称js)开发中,经常需要处理各种数据,并将其展示在用户界面上,例如生成表格。在本场景中,我们关注的是如何利用js从本地的JSON数据文档中读取信息,然后根据数据结构动态生成列数不固定的表格。这...

    【JavaScript源代码】JavaScript动态生成带删除行功能的表格.docx

    3. **动态生成表格**: - **循环遍历数据**:使用for循环遍历list数组,为每条数据创建一行tr。 - **创建单元格td**:在内部嵌套for循环,遍历对象的属性,根据属性创建td,赋值并添加到tr中。 - **创建删除链接*...

    JS操作Word生成表格

    综上所述,JS操作Word生成表格涉及到的技术包括ActiveXObject、Office.js、XML解析以及文件操作。理解这些知识点,能够帮助开发者构建强大的文档处理工具,提升工作效率。在实际开发中,需要注意兼容性问题,因为...

    使用JavaScript和DOM动态创建表格

    使用JavaScript和DOM动态创建表格

    javascript动态创建表格.doc

    在JavaScript中动态创建表格是一项常见的任务,特别是在网页交互和数据展示中。本文将深入探讨如何利用JavaScript的`insertRow()`和`insertCell()`方法来添加行和单元格,以及如何使用`deleteRow()`和`deleteCell()`...

Global site tag (gtag.js) - Google Analytics