JavaScript入门篇之文档对象模型

前言:

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(目前,HTMl和XML文档是通过说明部分定义的)。

文档对象模型提供了一种访问和修改HTML文档内容的方法。DOM是万维网联盟(W3C)定义的一种标准。大部分的互联网浏览器以各种形式实现了DOM并且获得了不同程度的成功。和其他标准,特别是那些与web编程相关的标准一样,DOM已经发展了很多年。它有三个规范,即所谓的DOM的级别,第四个规范正在制定中。DOM的强大远飞我一两句可以谈清楚的。本文简单的介绍了一下如何使用Javascript访问和操作DOM。

一、获取元素

使用Javascript编程时,获取文档的元素是使用DOM的基本方式。下面将介绍其中两个用来获取元素的基本方法:getElementById()和getElementsByTagName()。

1、通过ID获取元素

getElementById()方法是DOM中频繁使用的一个方法。它获取HTML文档的一个特定元素并且返回一个对它的引用。为了获取元素,它必须具有一个ID属性。

举例如下:

    <div id="div1">
        <p id="p1">
            我是第一个P</p>
        <p id="p2">
            我是第二个P</p>
    </div>

    window.onload = function () {
            var str = document.getElementById("p1").innerHTML;
            alert(str);        //弹出    我是第一个P
        }

2、通过标签名获取

当只获取一个或几个元素时,getElementById()方法工作的很好,但是当我需要同时获取超过一个的元素时,就发现getElementsByTagName()方法更合适。后者是通过数组或者列表的格式返回指定标签类型的所有元素。

举例如下:

    <div id="div1">
        <p id="p1">
            我是第一个P</p>
        <p id="p2">
            我是第二个P</p>
    </div>

    window.onload = function () {
            var str = document.getElementsByTagName("p")[1].innerHTML;
            alert(str);        //输出  我是第二个P,因为获取的是索引为1的P,索引从0开始
        }    

    window.onload = function () {
            var arr = document.getElementsByTagName("p");
            for (var i = 0; i < arr.length; i++) {
                alert(arr[i].innerHTML);
            }
        }

    window.onload = function () {
            var node = document.getElementById("div1");
         var node1 = document.getElementsByTagName("p")[1];    //从获取到的元素再获取
            alert(node1.innerHTML);
    }

二、操作属性

1、getAttribute()与setAttribute()

getAttribute()是读取属性内容,setAttribute()方法对文档做出的修改,将使得文档在浏览器窗口里的显示效果和/或行为动作发生相应的变化,但我们在通过浏览器的view source(查看源代码)选项去查看文档的源代码时看到的仍将是原来的属性值——也就是说,setAttribute()方法做出的修改不会反映在文档本身的源代码里。这种“表里不一”的现象源自DOM的工作模式:先加载文档的静态内容、再以动态方式对它们进行刷新,动态刷新不影响文档的静态内容。这正是DOM的真正威力和诱人之处:对页面内容的刷新不需要最终用户在他们的浏览器里执行页面刷新操作就可以实现。

2、举例

    <head>
        <title>Untitled Document</title>
        <script language="JavaScript">
            function change() {
                var input = document.getElementById("li1");
                alert(input.getAttribute("title"));
                input.setAttribute("title", "mgc");
                alert(input.getAttribute("title"));
            }
        </script>
    </head>
    <body>
        <ul id="u">
            <li id="li1" title="hello">Magci</li>
            <li>J2EE</li>
            <li>Haha!</li>
        </ul>
        <input type="button" value="Change" onClick="change();" />
    </body>

三、创建、删除、替代、插入节点对象

我们没有受到与已有元素交互的限制。我们可以使用DOM为文档添加元素。下面介绍了几种常用的操作Node对象的方法。

1、创建

<div id="div1">
            <p id="p1">我是第一个P</p>
            <p id="p2">我是第二个P</p>
        </div>

    window.onload = function () {
            var textNode = document.createTextNode("<p>我是一个javascript新建的节点</p>");
            document.getElementById("div1").appendChild(textNode);
        }

2、删除

<div id="div1">
            <p id="p1">我是第一个P</p>
            <p id="p2">我是第二个P</p>
        </div>

    window.onload = function () {
            var div1 = document.getElementById("div1");
            div1.removeChild(document.getElementById("p2"));
        }

3、替代

<div id="div1">
            <p id="p1">我是第一个P</p>
            <p id="p2">我是第二个P</p>
        </div>

    window.onload = function () {
            var div1 = document.getElementById("div1");
            var span1 = document.createElement("span");
            span1.textContent = "我是一个新建的span";
            div1.replaceChild(span1,document.getElementById("p2"));
        }

4、插入

<div id="div1">
            <p id="p1">我是第一个P</p>
        </div>

    window.onload = function () {
            var pNode1 = document.createElement("p");
            pNode1.textContent = "insertBefore插入的节点";
            var pNode2 = document.createElement("p");
            pNode2.textContent = "appendChild插入的节点";
            document.getElementById("div1").appendChild(pNode2);
            document.getElementById("div1").insertBefore(pNode1,document.getElementById("p1"));
        }

四、小结

结合前面一个阶段学过的XML,XML文档就是一颗节点树,树上所有的节点都是有联系的。Javascript就是通过DOM来操作XML中的节点。解释器把XML翻译成Javascript可访问的DOM对象,这样就方便了使用Javascript语言来操作XML文档。

时间: 2024-12-14 18:42:36

JavaScript入门篇之文档对象模型的相关文章

javascript DOM操作HTML文档

文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的HTML和XML对象集,并有一个标准接口来访问并操作他们,即任何一个 html 元素可以使用 JavaScript DOM 动态访问和控制. 1. DOM概述 文档对象模型定义了JavaScript可以进行操作的浏览器,描述了文档对象的逻辑结构及各个功能组件的标准接口.主要包括以下内容: 核心Jav

005_01文档对象模型DOM

DOM:document object model  文档对象模型.是W3C织制订的一套用于访问XML和HTML文档的标准.允许脚本动态地访问和更新文档的内容.结构和样式. W3C DOM 标准被分为 3 个不同的部分: 核心 DOM - 针对任何结构化文档的标准模型 XML DOM - 针对 XML 文档的标准模型 HTML DOM - 针对 HTML 文档的标准模型 左边为HTML文档树,右边为结构树示意图 XML DOM 定义了访问和处理 XML 文档的标准方法. HTML文档格式 符合X

Document Object Model 文档对象模型

===DOM==== 一组API. 作用: 1.修改标签属性 2.增加删除html文本中的标签 操作: 1.查找 方式1:使用id或者标签名,查找节点 document.getElementById("id值"); document.getElementsByTagName("标签名"); 方式2:遍历 parentNode:父节点 previousSibling:前一个兄弟节点 nextSibling:后一个兄弟节点 childNodes:孩子节点,返回数组 fi

Linux 指令篇:文档编辑--col

功能说明:过滤控制字符. 语 法:col [-bfx][-l<缓冲区列数>] 补充说明:在许多UNIX说明文件里,都有RLF控制字符.当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符. 参 数:  -b   过滤掉所有的控制字符,包括RLF和HRLF.  -f   滤除RLF字符,但允许将HRLF字符呈现出来.  -x   以多个空格字符来表示跳格字

iOS Foundation 框架 224 篇相关文档分类整理

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 截至 2014-05-02 ,苹果官网 Foundation 框架相关文档共计 224 篇,分类如下: Foundation 框架概述文档:常量.

js基础,DOM 文档对象模型

DOM 文档对象模型 DOM (document object model) 文档对象模型,它定义了操作文档对象的接口. DOM 把一份html文档表示为一棵家谱树,使用parent(父), child(子), sibling(兄弟)等记号 来表明家庭成员之间的关系. 一.节点 节点(node) 一词来自于网络理论,这代表着网络中一个个的连接点,网络是由节点构成的. 对于html文档也是一样,文档是由节点构成的集合. 1.元素节点 元素节点如 <body> <p> <div&

JavaScript中的Document文档对象

Document文档对象是JavaScript中window和frames对象的一个属性,是显示于窗口或框架内的一个文档.描述当前窗口或指定窗口对象的文档.它包含了文档从到的内容. 用法:document (当前窗口) 或 <窗口对象>.document (指定窗口) 属性: document.title //设置文档标题等价于HTML的定义的文字.在 Netscape 里本属性不接受赋值. fgColor 指标记的 text 属性所表示的文本颜色. bgColor 指标记的 bgcolor

xml.dom——文档对象模型API

文档对象模型,或者"DOM",是一个跨语言API的World Wide Web Consortium(W3C)来访问和修改XML文档.DOM的实现提供了一个XML文档树结构,或允许客户机代码从头开始建立这样一个结构.然后给访问结构通过一组对象提供著名的接口. 模块内容 xml.dom包含以下功能: xml.dom.registerDOMImplementation(name,factory) 注册factory函数名称的名称.factory函数应该返回一个对象实现 DOMImpleme

Hello World!这是一篇测试文档

这是用Windows Live Writer写的一篇测试文档仅供测试