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

用 JavaScript 玩转 DOM Level 1

阅读更多
    作者:Flyingis

    DOM(The Document Object Model)将HTML转换为XML文档格式来表达,为动态HTML编程提供了一种优雅的解决方案。DOM编程可以使用多种语言(Java中可以使用SAX进行XML编程),不论大家使用何种服务器端技术,JavaScript的DOM基础编程还是需要掌握的,最常见的莫过于getElementById(),引用Prototype.js使用最多的也是$(""),但是要做好Web客户端设计,我们需要了解更多更细。

    当前各种主流浏览器对DOM Level 1标准支持的相对较好,我们就来看看在JavaScript中如何玩转DOM Level 1。

    众所周知,对于XML所有的节点都是Node类型,整个XML文档的根节点是一个Document,通过document.documentElement来获取根节点,特殊的是在IE5.5中返回的是body元素。除此之外还有其他各式各样的节点类型,下面列举几个常见的:

    DocumentType:代表DTD的引用
    Element:代表XML中的各种标签,并且是整个文档中唯一可以拥有属性的节点
    Attr:节点属性的键-值对
    Text:开始标签和结束标签之间的文本值
    Comment:代表XML的注释节点

    JavaScript中定义了12个常量来分别代表12种不同的节点类型,通过这些常量可以判断当前变量中的节点类型,这些节点拥有一系列的属性和方法,具体可以参考相关资料。需要说明的是编程中用NodeList表示Node的集合,NamedNodeMap表示Attribute的集合,在获取了节点、属性之后可以将节点、属性保存在NodeList、NameNodeMap中,如何获取节点、属性值在下面会谈到。顺便说一下,虽然各种主流浏览器均支持DOM,但支持程度不一,Mozilla在这方面做的是最好的,它支持DOM Level 1和Level 2的所有标准,包括DOM Level 3部分标准,但是鉴于IE在市场中的主流地位,很多时候我们都需要做多种考虑。举个例子:

// 标签中间是一空格
<tag id="tagId"> </tag>

// 获取tag节点
var tagId = document.getElementById("tagId");
// 在Mozilla中返回true,IE中返回false
alert(tagId.hasChildNodes());


    获取属性

    Element是所有节点中唯一拥有属性的节点,NamedNodeMap表示Node节点的属性,拥有以下方法:

    getNamedItem(name)
    removeNamedItem(name)
    setNamedItem(node)
    item(pos) 

    各种方法涉及的对象是属性节点名称,而不是属性值。另外,通过下列方法可以实现同样的功能:

    getAttribute(name)
    setAttribute(name, value)
    removeAttribute(name)

    获取节点

    XML Node节点获取方式大家应该都非常熟悉了:

    getElementsByTagName()
    getElementsByName()
    getElementsById()

    getElementsByTagName("*")可以获取所有的Element,但是IE中,需要使用document.all来实现这个功能。IE6.0和Opera老版本的浏览器对于getElementsByName()的支持存在一些问题,一般不推荐使用。对于getElementsById("idVal"),如果Element的name和参数idVal匹配,会获得该Element。 

    创建和控制节点

    create***一系列的方法以及appendChild()、removeChild()、replaceChild()、insertBefore()、createDocumentFragment(),提供了创建各种节点的功能,参考相关资料。


    上面讨论是JavaScript对XML的操作,如果仅仅对HTML DOM进行操作,编程相对更为简单,如HTML元素的属性可以直接作为代码的属性:

<img id="img" src=""/>

var img = document.getElementBy("img");
// 设置图片的路径
img.setAttribute("src""pic.gif");
// 输出图片的路径,结果和上面设置的路径相同
alert(img.src);

    同样需要我们注意的是,IE对setAttribute()支持的并不是很好,在大多数情况下,应该避免使用setAttribute()。

    除此之外,在HTML DOM中还有一系列的方法用来操作table,这里不作详述,在自己现在设计的Web程序中已经没有使用了。

    看来要用JavaScript玩转DOM Level 1不是件容易的事情,最主要的问题还是在不同浏览器的兼容性上,表现最为“突出”的是IE,现在IE7已经推出,但对于标准的兼容还是不尽如人意。经常在Java、C#、JavaScript各种不同语言中操作XML,一段时间过后就容易迷糊,我自己就是这样,上面将JavaScript相关的操作简单整理了一下,不是很详细,毕竟都是大家熟悉的东西,但是在使用的时候看看就知道具体该怎么处理了,实在不行就参考相关的书籍和电子文档吧。

    写这些的时候办公室有人把电脑声音打开了看电视,还不停找话题和大家聊天,我戴上耳机也只能勉强用音乐挡住他放出的噪音,最鄙视这种人,和老板一个鼻孔出气,啥都不是但老板信任,没有办法,碰到这样的团队,不知道大家碰到这种情况是否和我一样戴上耳机?呵~
分享到:
评论

相关推荐

    JavaScript dom操作 dom元素查询 示例代码

    JavaScript dom操作 dom元素查询 示例代码JavaScript dom操作 dom元素查询 示例代码JavaScript dom操作 dom元素查询 示例代码JavaScript dom操作 dom元素查询 示例代码JavaScript dom操作 dom元素查询 示例代码...

    Javascript操作XML Dom

    Javascript操作XML Dom学习资料

    JavaScript DOM编程艺术.pdf

    《JavaScript DOM编程艺术》是Jeremy Keith所著的一本关于JavaScript和DOM(文档对象...这本书在2007年1月首次出版,至今仍被广泛引用和推荐,对推动Web标准的实践和促进JavaScript及DOM编程技术的普及发挥了重要作用。

    JavaScript DOM编程艺术【第2版&高清】.pdf

    6. DOM编程实践:通过实例演示如何使用JavaScript的DOM API来实现各种动态网页效果,比如创建动态的导航菜单、表单验证、内容的异步加载(AJAX)等。 7. 高级DOM技术:随着对DOM操作的深入,还可以学习到如何利用...

    JavaScriptDOM编程艺术(第2版)PDF版本下载.txt

    《JavaScript DOM编程艺术(第2版)》这本书详细介绍了如何使用JavaScript来操纵DOM,实现网页的动态交互效果。通过深入学习本书中的内容,开发者可以更好地理解和掌握JavaScript与DOM的结合方式,提高Web开发的能力...

    JavaScript DOM编程艺术(第2版pdf)+源代码

    JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...

    javascript_DOM操作

    在JavaScript中,我们可以利用DOM API来创建、修改、删除和查找网页上的任何元素,实现动态更新和交互。 **DOM的基本操作** 1. **获取元素**: `document.getElementById()` 是最基础的获取元素方法,通过ID查找。...

    JavaScript.DOM编程艺术(第2版)附录及源码.rar

    《JavaScript.DOM编程艺术(第2版)》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM是Web开发中的核心组件,它允许程序员通过JavaScript来操作HTML和XML文档的结构、内容和样式。这本书...

    随书光盘+PDF JavaScript DOM编程艺术(第2版)-源代码2.5MB PDF114MB .zip

    JavaScript DOM编程艺术(第2版)是一本深受开发者欢迎的书籍,主要涵盖了JavaScript语言在Web前端开发中的应用,特别是关于DOM(Document Object Model)的深入理解和实践。这本书的随书光盘包含了源代码和PDF电子版...

    JavaScript dom操作 删除元素 示例代码

    JavaScript dom操作 删除元素 示例代码JavaScript dom操作 删除元素 示例代码JavaScript dom操作 删除元素 示例代码JavaScript dom操作 删除元素 示例代码JavaScript dom操作 删除元素 示例代码JavaScript dom操作 ...

    JavaScript程序设计——DOM访问实验报告.docx

    实验报告的主题是“JavaScript程序设计——DOM访问”,其目的是深入理解和掌握DOM(Document Object Model)在JavaScript中的应用,包括文档对象的属性、方法以及使用方式。DOM是HTML和XML文档的标准化表示,允许...

    javascriptDom编程艺术+源码

    这本书深入浅出地讲解了如何使用JavaScript来操纵DOM,从而实现丰富的用户界面和动态效果。 书中首先介绍了JavaScript的基础知识,包括变量、数据类型、函数等基本概念,为后续DOM操作打下坚实基础。接着,深入探讨...

    JavaScript & DOM Enlightenment

    在实际开发中,JavaScript和DOM的结合应用非常广泛,例如AJAX(Asynchronous JavaScript and XML)用于实现页面无需刷新的数据更新,或者使用jQuery等库简化DOM操作。同时,随着Web组件和框架(如React、Vue、...

    给页面加速,干掉Dom Level 0 Event

    标题中的“给页面加速,干掉Dom Level 0 Event”是指优化网页性能的一个关键策略,主要涉及JavaScript事件处理。在早期的DOM(文档对象模型)规范中,即DOM Level 0,事件处理主要通过两种方式:`element.onclick = ...

    JavaScript实现获取dom中class的方法

    本文主要介绍了如何使用JavaScript来获取DOM(文档对象模型)中具有特定class的DOM元素。在讲解的过程中,涉及到JavaScript操作DOM节点的一些基本技巧和方法,如使用`getElementsByClassName`和`...

    JavaScriptDOM编程艺术

    1. **JavaScript基础**:在深入DOM之前,首先需要理解JavaScript的基础语法,包括变量、数据类型、控制流程、函数等。这些基础知识是编写任何JavaScript代码的基础,也是理解DOM操作的前提。 2. **DOM概念**:DOM是...

    javascript+dom书籍

    例如,你可以使用DOM操作动态加载数据,然后用JavaScript处理响应,更新页面内容,无需刷新页面。 在"javascript+dom学习文档"中,可能涵盖了以上各个方面,包括理论讲解、示例代码和实践案例。PDF格式的文档通常会...

    javascript dom2 源码及pdf

    总的来说,JavaScript DOM2是Web开发中的关键工具,它让JavaScript成为了一种强大的客户端脚本语言,为网页带来了丰富的动态性和交互性。通过学习和实践,开发者可以提高网页的用户体验,创建出更加智能和灵活的Web...

    javascriptDOM

    DOM是一个树形结构,将网页内容分解为独立的对象,这些对象可以被JavaScript或者其他脚本语言访问和操作。在JavaScript中,DOM主要用于创建、修改和操纵网页元素,从而实现动态网页效果。 在学习JavaScript DOM时,...

    使用Javascript和DOM Interfaces来处理HTML

    标题 "使用Javascript和DOM Interfaces来处理HTML" 涉及的核心技术是JavaScript和DOM(Document Object Model)接口在网页交互中的应用。JavaScript是一种广泛用于Web开发的脚本语言,而DOM则是HTML和XML文档的一种...

Global site tag (gtag.js) - Google Analytics