`
easonfans
  • 浏览: 252992 次
  • 性别: 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应用程序,尤其在创建交互式用户界面方面表现突出。动态生成表格是...

    javascript动态添加表格数据行

    在JavaScript编程中,动态添加表格数据行是一种常见的需求,特别是在构建交互式的Web应用程序时。这个功能允许用户在不刷新整个页面的情况下添加新的记录,提高了用户体验。在这个例子中,我们将探讨如何利用...

    javascript动态生成页面元素

    在现代Web开发中,JavaScript作为前端开发的核心语言之一,其动态生成页面元素的能力是构建交互式网站的关键技术。本文将深入探讨如何利用JavaScript动态生成HTML页面元素,包括使用innerHTML属性和DOM(Document ...

    javascript动态生成table及处理.

    通过 JavaScript 动态生成表格可以更加灵活地管理和更新数据。本文将深入分析一个具体的示例,该示例展示了如何使用 JavaScript 来动态生成一个表格,并根据用户的选择进行实时更新。 #### 核心代码解析 首先,...

    最简单的动态生成表格并实现不同框架打印

    在IT领域,动态生成表格和跨框架交互是网页开发中的常见需求。动态表格允许开发者根据用户操作或服务器数据实时更新页面内容,而框架结构则能帮助组织和管理复杂的页面布局。下面将详细解释这两个概念以及如何实现...

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

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

    javaScipt动态生成表格

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

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

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

    JavaScript动态添加删除表格行

    在JavaScript编程中,动态添加和删除表格行是一个常见的需求,特别是在网页交互和数据展示中。这篇博客"JavaScript动态添加删除表格行"可能详细讲解了如何使用JavaScript实现这一功能。通过给定的标签"源码"和"工具...

    动态生成表格工具类

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

    Javascript动态创建表格

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

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

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

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

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

    JavaScript实现网页动态生成表格

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

    JavaScript动态操作表格,添加,删除行、列及单元格

    JavaScript动态操作表格,添加,删除行、列及单元格! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/

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

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

    JS操作Word生成表格

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

    JavaScript实现动态生成表格

    本文实例为大家分享了JavaScript实现动态生成表格的具体代码,供大家参考,具体内容如下 功能描述 在输入框中输入行和列,点击按钮,生成拥有对应行和列的表格。如下图所示: 分析 HTML界面设计 &lt;body&gt; 行...

Global site tag (gtag.js) - Google Analytics