位置: 编程技术 - 正文

JavaScript与DOM组合动态创建表格实例(dom和javascript的关系)

编辑:rootadmin
简介  这篇文章简单介绍了DOM 1.0一些基本而强大的方法以及如何在JavaScript中使用它们。你可以学到如何动态地创建、获取、控制和删除HTML元素。这些DOM方法同样适用于XML。所有全面支持DOM 1.0的浏览器都能很好地运行本篇的实例,比如IE5,Firefox等。概况 - Sample1.html  这篇文章通过实例代码介绍DOM。请从尝试下面的HTML例子开始。它使用DOM 1的方法由JavaScript动态创建一个HTML表格。它创建一个由四个包含文本内容的单元格组成的小表格。单元格的文字内容是:“单元格是第y行第x列”,表示单元格在表格中的行数和列数。 注意我们创建各元素和文字节点的顺序:

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例子。下面这个实例更加简单,显示了一些基本的方法:

在这个例子里,我们设置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(,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方法设置任何元素的任何属性。使用DOM和CSS处理表格从表格中获取一个文本节点  这个例子介绍两个新的DOM属性。首先使用childNodes属性获取mycel的字节点列表。这个childNodes列表包含所有的字节点,不管它们的名称和类型是什么。像getElementsByTagName方法一样,它返回一个字节点列表,使用 [ x ] 来获取想要的字节点项。这个例子将myceltext存储为表格第二行第二个单元格的文本节点。最后,它创建一个新的包含myceltext 的data 属性 的文本节点,并使它成为< body >元素的子节点,来显示这个例子的最后结果。

如果你的对象是文本节点,你可以使用data属性来获取它的内容获取一个属性值  在sample1的最后有一个单元格使用了mytable对象的setAttribute方法。这个单元格用来设置这个表格的border属性。使用getAttribute方法来获取这个属性:

mytable.getAttribute("border");

通过改变style属性隐藏列  当你使用一个JavaScript变量指向对象,你可以立即设置它的style属性。下面的代码是sample1.html的修改,第二列的单元格都被隐藏,第一列的单元格背景改为红色。注意style属性是直接设置的。

推荐整理分享JavaScript与DOM组合动态创建表格实例(dom和javascript的关系),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript与DOM组合动态创建表格实例(dom和javascript的关系)

文章相关热门搜索词:js dom操作方法,javascript中dom的含义,javascript中dom的含义,javascript中dom的含义,js dom操作方法,javascript中dom的含义,javascript中的dom和bom,javascript中的dom和bom,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript小数四舍五入多种方法实现 用Javascript取float型小数点后两位,例.取成.,如何做?1.最笨的办法functionget(){vars=.+"";varstr=s.substring(0,s.indexOf(".")+3);alert(str);}2.正则表达式

javascript 全选与全取消功能的实现代码 htmlheadmetahttp-equiv="Content-Type"content="text/html;charset=gb"/title无标题文档/titlescripttype="text/javascript"language="javascript"functionselectAll(){varallCheckBoxs=document.getEleme

Knockoutjs快速入门(经典) Knockoutjs是一个JavaScript实现的MVVM框架。主要有如下几个功能:1.Declarativebindings2.Observablesanddependencytracking3.Templating它对于分离前台的业务逻辑和视图简化

标签: dom和javascript的关系

本文链接地址:https://www.jiuchutong.com/biancheng/379208.html 转载请保留说明!

上一篇:mailto的使用技巧分享

下一篇:javascript小数四舍五入多种方法实现

  • 总公司是小规模分公司是一般纳税人
  • 合同执行过程中应该怎么做
  • 企业出售土地的土地增值税计算方法
  • 公司旧车出售要交什么税
  • 车船税的免征对象是什么
  • 契税的纳税人是指在我国境内转移房屋土地权的
  • 经营性应付项目的增加怎么计算
  • 个税申报可以去税务局吗
  • 个人发票需要身份证信息吗?
  • 社保本期工资总额是怎么填的
  • 进出口企业必须有报检资质吗
  • 发票认证延期抵扣啥意思
  • 员工借款怎么入账
  • 公司股东投资是负债吗
  • 公司给自然人咨询怎么说
  • 财政补助结转余额在借方还是贷方
  • 金蝶哪个版本最好
  • 预付帐款科目如何转平?
  • 外账进销存单据是怎么弄的?
  • 在禁用uac时无法激活什么原因
  • 支付人工费会计科目
  • PHP:pg_result_status()的用法_PostgreSQL函数
  • 逾期未退保证金怎么办
  • 销售旧固定资产开票税目是什么
  • 关于出售使用过的东西
  • 企业财务管理内部控制问题与应对策略
  • 第三方库引用
  • 总承包合同如何约定农民工工资
  • 专家评审费发放新规定2023
  • element ui停止
  • python的Django框架
  • 自动驾驶汽车决策与控制pdf
  • python3.9.4怎么用
  • php array_walk_recursive 使用自定的函数处理数组中的每一个元素
  • ps像素大小怎么调整不了
  • SQL(MSSQLSERVER)服务启动错误代码3414的解决方法
  • php环境配置教程
  • 有限责任公司分类
  • 以件数为印花税计税的有哪些
  • 货先到发票后到怎么办
  • 业务招待费如何调整
  • 贷款用途不符合规定有啥危害
  • 企业所得税退税如何进行账务处理
  • 长期待摊费用的概念
  • 简易计税项目的进项税能抵一般项目的销项税额吗?
  • 收到保险公司赔款
  • 调整以前年度的费用怎么做
  • 普通发票做帐有什么用
  • 主营业务收入的t型账户怎么写
  • 非营利机构如何申请
  • mysql优化技巧实战
  • MySQL关于exists的一个bug
  • session几种存储方式
  • centos7.6ssh
  • win10系统共享打印机无法访问怎么解决
  • 微软补丁发布时间
  • win7系统如何修改锁屏密码
  • Linux下使用httpry来嗅探HTTP流量教程
  • windows7鼠标设置在哪里
  • surface使用
  • perl 特殊字符转义
  • 使用nodejs中httpProxy代理时候出现404异常的解决方法
  • 【新功能】“回调特性”的使用教程:
  • convert fs
  • unity 版本控制
  • 安卓无法更新软件
  • 深入php面向对象、模式与实践第5版 电子书
  • bootstrap js插件
  • cocos2d怎么用
  • python按行写入txt
  • android背景图片透明度alpha
  • 安卓动画不流畅
  • 电子税务局内蒙古自治区
  • 增值税进项转出补企业所得税
  • 公务员车补缴个税吗
  • 黑龙江省国税局网站
  • 什么是征收率什么是税率
  • 2021河南税务政策
  • 小规模纳税人是按月还是按季度申报增值税
  • 金税盘白盘如何换纽扣电池
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设