美文网首页
javascript(二)——DOM基础

javascript(二)——DOM基础

作者: 子约nan | 来源:发表于2017-12-03 15:25 被阅读0次

    DOM概述

    DOM定义

    DOM(文档对象模型,Document Object Model)是W3C组织开发的一套便于操作XML和HTML的JavaScript方法,其将XML和HTML抽象成文档对象(Document),并将其中所有的标签和内容都抽象成对象(节点),利用面向对象的思对XML和HTML的操作。其中 Document 对象是DOM的顶层节点。
    XML(扩展标记语言,Extensible Markup Language),主要用于信息的存储和传送,HTML也是一种XML。

    DOM组成
    • DOM核心:针对任何结构化文档的标准模型。
    • XML DOM:针对 XML 文档的标准模型。
    • HTML DOM:针对 HTML 文档的标准模型。
    XML DOM和HTML DOM的关系

    XML DOM :用于 XML 的标准对象模型,用于 XML 的标准编程接口,中立于平台和语言的 W3C 标准。XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。换言之:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。

    HTML DOM :HTML 的标准对象模型,HTML 的标准编程接口的 W3C 标准。HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

    其中,HTML DOM 是 XML DOM 的扩展,换言之,XML DOM 的方法均可以使用在HTML中,而反过来,HTML DOM 的方法不可以使用在XML中。

    树节点

    1. DOM树

    对于HTML文档,DOM将所有的标签全部抽象成节点,并且节点间有严格的等级关系,以此形成一个DOM树。

    如:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>Demo</title>
    </head>
    <body>
        <h1>DOM Lesson one</h1>
        <p align="center">Hello world!</p>
    </body>
    </html>
    
    其对应的DOM树

    其中,每一行都是兄弟节点,绿色线条代表父子关系,而红色线条也是父子关系的一种,但是无法通过父亲查找孩子而找到。

    1. 节点

    2.1 节点分类
    由DOM树可见,节点分为三种:元素节点(标签),属性节点和文本节点。

    2.2 节点属性
    nodeName,nodeValue,nodeType

    2.3节点关系


    节点关系

    DOM的使用

    1. 读取子节点的内容
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>读取指定的内容 </title>
        <script type="text/javascript">
        function _getLi() {
            var bjNode = document.getElementById("bj");
            var _childNodes = bjNode.childNodes;
            for (var i = 0; i < _childNodes.length; i++) {
                var n = _childNodes[i];
                if (n.nodeType == 1) {
                    alert(n.childNodes[0].nodeValue);
                }
            }
        }
        </script>
    </head>
    <body>
        <ul>
            <li id="bj" value="beijing">
                北京
                <h1>海淀</h1> 奥运
            </li>
            <li id="sh" value="shanghai">
                上海
            </li>
            <br/>
            <input type="button" value="li取值" onclick="_getLi()" />
        </ul>
    </body>
    </html>
    

    2.获取孙子节点的内容
    获取select下面option的文本内容。

    HTML:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>Demo</title>
        <script type="text/javascript" src="js.js"></script>
    </head>
    <body>
        <select name="edu" id="edu">
            <option value="本科1">本科</option>
            <option value="专科2">专科</option>
            <option value="高中3">高中</option>
            <option value="小学4">小学</option>
            <option value="幼儿园5">幼儿园</option>
        </select>
    </body>
    </html>
    

    实现方法:

    var optNodes = document.getElementById("edu").options;
    for (var i = 0; i < optNodes.length; i++) {
        var n = optNodes[i];
        alert(n.getAttribute("value"));
    }
    

    相关文章

      网友评论

          本文标题:javascript(二)——DOM基础

          本文链接:https://www.haomeiwen.com/subject/xgcabxtx.html