使用JavaScript遍历文档对象模型

文中使用一个示例应用程序演示了 DOM 方法和属性以及如何向 DOM 事件附加处理程序。

万维网联盟 (W3C) 已经在不同的规范组(DOM 1 级、DOM 2 级和 DOM 3 级)对文档对象模型 (DOM) 进行了定义。 DOM 将 HTML 或 XML 表示为一棵树,该树由具有属性和方法的不同层次的节点组成。使用客户端语言例如 JavaScript,您可以为该树中的节点添加、修改、删除以及附加事件,从而产生交互、动态的 Web 页面。

使用客户端脚本语言 (JavaScript) 修改 DOM 的行为称为 DOM 脚本编程。DOM 脚本编程用来代替通用术语动态 HTML (DHTML),DHTML 在 Web 开发中用来表示使用 HTML、CSS 和 JavaScript 的交互 Web 页面的构造。

本文探讨了 DOM API 中最常用的方法和属性。使用一个详细的示例来展示如何使用 JavaScript 遍历 DOM。使用一个较复杂的模型阐述了在何处需要考虑事件和监听程序。了解如何利用 JavaScript 库与 DOM 进行交互。

DOM 脚本编程

在 DOM 术语中,document 表示树根。在 JavaScript 中表示为 window.document,或者简单地表示为 document(因为它被附加到 Window 对象)。这是 JavaScript 实现的起始点。 清单 1 显示了一个 HTML 片段示例。

清单 1. HTML 代码

<body> <p id="paragraph1"> <span>This is some text</span> <a href="/index.html" title="Click here">Click here</a> <p></body>

从 DOM 角度看,以上示例中 p 标签由 DOM Element 接口表示。它是 span 标签和 a 标签的父标签。span 标签和 a 标签是同级标签。

假如您想要获取 清单 1 中代码定位点的 href 属性。访问 DOM 中某个元素的简单方法是使用 getElementById 方法。 以下代码串显示了包含使用接口定义语言 (IDL) 编写的 getElementById 签名的文档接口定义的一部分: Element getElementById (in DOMString elementId)。

JavaScript 使用 String 对象实现 DOMString 接口,所以该方法以字符串的形式接受元素 ID 并将其作为一个参数。 在示例片段中,带有 id 属性的惟一元素是 p 标签,所以可以使用 var paragraph = document.getElementById("paragraph1"); 检索它。

使用 childNodes 属性您可以获得嵌入在 p 标签中的定位点。该属性属于 Node 接口,并返回一个 NodeList 类型的对象。 在 JavaScript 中,该对象是一个数组式的对象。数组式的对象没有方法,比如 pop() 或 push(),但是它们有 length 属性。 从 childNodes 属性中返回的对象在节点元素(HTML 标签)、文本节点或注释节点之间没有任何不同。 如果您只要寻找节点元素,您可以考虑 children 属性。不考虑文本和注释节点的话,它比 childNodes 更能满足我们的目的。 在该示例中,定位点是段落的第二个子节点,可以使用 var aElement = paragraph.children[1]; 获得。

给定一个元素,要获取 href 属性的值,您可以采用 getAttribute 方法,将属性名作为一个参数进行传递(在本例中,为 href)。 包含 getAttribute 方法的 IDL 定义部分为: DOMString getAttribute (in DOMString name)。

在该示例中,您可以像这样实现以上接口:var aHref = aElement.getAttribute("href"); // "index.html"。

与在 JavaScript 中一样,您可以将方法链接起来。若要通过一行获取 a 标签 href 属性的值,请使用:var aHref = document.getElementById("paragraph1").children[1].getAttribute("href"); // index.html */。

探究 DOM 脚本编程:示例应用程序

本节探究 DOM 脚本编程的一些特性。Sticky Notes 示例应用程序是一个交互的 Web 页面,该页面可让用户不需重新加载页面即可添加 “sticky” 注释。图 1 显示了该页面。

图 1. Sticky Notes 应用程序前端

图 1 所显示页面的 HTML 代码显示在 清单 2 中。在清单 2 中 head 标签是对 CSS 和 JS 文件的引用。 在 body 标签中您已经可以看到页面中注释的结构:textarea 标签和触发新注释创建的定位点。

清单 2. HTML 代码

<!DOCTYPE html><html> <head> <meta charset=utf-8"> <title> Dom Scripting </title> <link rel="stylesheet" href="css/master.css" /> <script src="js/script.js"></script> </head> <body> <div class="wrapper"> <h1> Sticky Notes </h1> <div class="links"> <textarea id="contentArea" cols="10"> </textarea> <a href="/random.html" class="add">Click here</a> <span>to add a sticky note</span> </div> <div id="notes"> <div class="note"> <p> This is a note </p> </div> </div> </div> </body></html>

时间: 2024-10-26 09:34:30

使用JavaScript遍历文档对象模型的相关文章

理解document.all[]:DOM文档对象模型

文章简介:浅谈document.all与WEB标准. 1.DOM WEB标准现在可真是热门中热门,不过下面讨论的是一个不符合标准的document.all[].DOM--DOCUMENT OBJECT MODEL文档对象模型,提供了访问文档对象的方法.例如文档中有一个table,你要改变它的背景颜色,那就可以在javascript中用document.all[]访问这个TABLE.但DOM也有所不同,因为浏览器厂商之间的竞争,各浏览器厂商都开发了自己的私有DOM,只能在自己的浏览器上正确运行,d

文档对象模型DOM通俗讲解_基础知识

在开始之前先说一点,DOM是非常容易理解的,但是大家说的太官方,让人很是难于理解,我们就用非常简单的语言翻译一遍.加深对DOM的理解,从而对它有一个全面的认识. 什么是DOM DOM的全称是Document Object Model,即文档对象模型,它允许脚本控制Web页面.窗口和文档. 如果没有DOM,JavaScript将是另外一种脚本语言:而有了DOM,它将成为制作动态页面的强有力工具.DOM不是JavaScript语言的一部分,而是内置在浏览器中的一个应用程序接口.当然,我们可以简单的理

C#发现之旅第十讲 文档对象模型

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 课程说明 本

javascript获取文档坐标和视口坐标_javascript技巧

元素的位置是以像素度量的,向右代表X坐标的增加,向下代表Y坐标的增加,但是,有两个不同的点作为坐标系的原点:元素的X和Y坐标可以相对于文档的左上角或者相对于在职中显示文档的视口的左上角. 在定级窗口和标签页中,"视口"只是实际显示文档内容的浏览器的一部分:它不包括浏览器的"外壳"(如菜单.工具条和标签页). 针对框架也中显示的文档,是口试定了框架页的<iframe>元素.无论在何种情况下,当讨论元素的位置是,必须弄清楚所使用的坐标是文档坐标还是视口坐标.

javascript 获取文档所有图片

javascript 获取文档所有图片 function updateUI(){     var imgs = document.getElementsByTagName("img");     for(var i=0, len=imgs.length; i < len; i++){         imgs[i].title = document.title + " image " + i;     }       var msg = document.ge

Pro Javascript Techniques第五章: 文档对象模型

在过去十年里web开发所取得的所有进步当中,DOM(文档对象模型)脚本是开发者可用来改进其用户体验质量的最重要的技术. 使用DOM脚本向页面加入非侵入的JavaScript(意味着它不会与不支持的浏览器或禁用了JavaScript的用户发生冲突),你将能提供各种你的用户可享受的现代浏览器的增强功能,同时又不会损害那些不能利用它们的用户.这么做的一个副作用是,你的所有代码最终都可以被很好的分离和更容易地管理. 可喜的是,所有的现代浏览器都支持DOM并额外地支持一个当前HTML文档的内建的DOM表述

网站分析Hacks精选系列之JavaScript文档对象模型

中介交易 SEO诊断 淘宝客 云主机 技术大厅 本文节选译自网站分析大师Eric T.Peterson的<Web Site Measurement Hacks> – HACK#30 "Hack the JavaScript Document Object Model" 网站分析解决方案普遍采用标签方式,理解他们是如何使用JavaScript文档对象模型(DOM)的. 大多数网站分析工具提供商都广泛使用JavaScript文档对象模型(DOM),你可能会担心提供商的代码是否会

XML文档对象模型

xml|对象 XML文档对象模型1)DOMDocument对象:该对象描述全部的文档映射表,文档映射表包含了XML文档里的所有信息.  常用方法  常用属性 2)IXMLDOMNode对象:该对象描述XML文档里的节点.这个节点可以是元素.属性.处理指令.文本或者其他存储在XML文档里的信息.  常用方法  常用属性 3)IXMLDOMNodeList对象:该对象描述IXMLDOMNode对象的集合,并可使用该对象遍历这个集合.IXMLDOMNodeList对象里的节点集合可以用数值该问.  常

在JAVA中使用文档对象模型DOM经验小结

dom|对象 文档对象模型 (DOM) 是一个文档标准,对于完备的文档和复杂的应用程序,DOM 提供了大量灵活性.DOM标准是标准的.它很强壮且完整,并且有许多实现.这是许多大型安装的决定因素--特别是对产品应用程序,以避免在API发生改变时进行大量的改写. 以上是我在选择处理XML数据时之所以没有选择JDOM或者dom4j等其它面向对象的标准的原因,不过也由于DOM从一开始就是一种与语言无关的模型,而且它更趋向用于像C或Perl这类语言,没有利用Java的面向对象的性能,所以在使用的过程中也遇