JS-DOM对象

Posted lynnblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-DOM对象相关的知识,希望对你有一定的参考价值。

DOM对象

一、DOM对象

  DOM 是 W3C(万维网联盟)的标准。DOM 定义了访问 html XML 文档的标准。W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。本文中只介绍基于HTML的 DOM。HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。

 

二、DOM结点

各个结点对象

    document     // 整个文档是一个文档节点
    element      //每个 HTML 元素是元素节点
    text         //HTML 元素内的文本是文本节点
    attribute    //每个 HTML 属性是属性节点
    comment      //注释是注释节点

 

各结点属性

    attributes    //节点(元素)的属性节点
    nodeType      //节点类型
    nodeValue     //节点值
    nodeName      //节点名称
    innerHTML     //节点所包含的所有元素
    innerText     //节点所包含的所有文本元素

 

导航属性

    parentNode       //节点(元素)的父节点 (推荐)
    firstChild       //节点下第一个子元素
    lastChild        //节点下最后一个子元素
    childNodes       //节点(元素)的子节点

 

推荐导航属性

    parentElement                //父节点标签元素
    children                     //所有子标签
    firstElementChild            //第一个子标签元素
    lastElementChild             //最后一个子标签元素
    nextElementtSibling          //下一个兄弟标签元素
    previousElementSibling       //上一个兄弟标签元素

 

 访问HTML属性

    getElementById()          //通过id属性访问,不支持局部查找
    getElementsByTagName()    //通过标签名字访问
    getElementsByClassName()  //通过class名字访问
    getElementsByName()       //通过属性名字访问,不支持局部查找

 

DOM结点的具体用法

  下面是用于测试的HTML的body内容

    <div class="divTag1">
        大家好才是真的好!
        <p name="pTag1" class="pTag2">P标签</p>
        <div class="divTag2" id="id_Div">
            从你的世界路过
            <div>今天世界很美好</div>
            <a href="www.baidu.com">百度</a>
        </div>
        <span>成熟是一种明亮而不刺眼的光辉</span>
    </div>
    <span>span标签2</span>
    <div>div标签</div>

 

  下面是用于测试的javascript内容

getElementsByClassName的使用

    //getElementsByClassName返回的是一个集合,所以必须取第一个元素
    var ele = document.getElementsByClassName("divTag1")[0];
    console.log(ele);                //显示内部的所有元素
    console.log(ele.innerHTML);      //显示内部的所有元素
    console.log(ele.innerText);      //显示内部的所有文本元素

 

getElementsByTagName的使用

    var ele = document.getElementsByTagName("p");
    console.log(ele);           //获取所有P标签的集合
    console.log(ele[0]);        //获取所有P标签集合中的第一个元素

 

getElementsByid的使用

    //ID是唯一的,所以通过id获取的标签只有一个
    var ele = document.getElementById("id_Div");
    console.log(ele)               //获取id为id_Div标签
    console.log(ele.innerHTML);    //显示标签的元素

 

getElementsByName的使用

    var ele = document.getElementsByName("pTag1");
    console.log(ele)                 //显示结点列表NodeList(1)
    console.log(ele[0].innerHTML)    //显示的值为:P标签

 

导航属性

    var ele = document.getElementsByClassName("divTag1")[0];
    console.log(ele)                        //显示集合第一个元素的所有内容
    console.log(ele.children)               //显示子元素的所有内容
    console.log(ele.children[0])            //子元素的第一个元素
    console.log(ele.children[0].children)   //集合为空

 

局部查找

  在属性导航中,所谓局部查找的意思是在访问HTML属性的基础上进一步访问HTML属性。但需要特别注意的是getElementById()和getElementsByName()不支持局部查找的。

    var ele1 = document.getElementsByClassName("divTag1")[0];
    //在ele1的基础上继续查找
    var ele2 = ele1.getElementsByTagName("span");
    console.log(ele2);

 

 

 

 

 

以上是关于JS-DOM对象的主要内容,如果未能解决你的问题,请参考以下文章

JS-DOM对象知识点汇总(慕课)

js-DOM

JS-DOM2级事件对象跨浏览器处理(已封装)

[JS-DOM]DOM概述

[JS-DOM]核心DOM模型(Document,Element,Node)

JS-DOM样式操作