DOM分类及HTML DOM

DOM简介



DOM是W3C(World Wide Web Consortium)标准。

“W3C 文档对象模型(DOM,全称Document Object Model)”是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口。

DOM被分为3个不同的部分/级别:

  • 核心 DOM
  • XML DOM
  • HTML DOM

核心DOM:提供了操作文档的公有属性和方法,就相当于鼻祖。

HTML DOM:提供了所有HTML元素的对象和属性,以及访问方法,相当于对核心DOM进行了在HTML方面的拓展

XML DOM:提供了所有XML元素的对象和属性,以及访问方法,与HTML DOM类似。

HTML DOM



节点概念

HTML DOM 把所有的元素全部转化为节点对象,以后要想操作HTML里的内容就等于操作节点。

节点分类

  • 文档节点[object HTMLDocument]
  • 元素节点[object HTMLXXXElement]
  • 属性节点[object Attr]
  • 内容节点[object Text]

1、文档节点就是根,只存在一个,想要得到它十分容易,写一个 document 相当于文档节点了。

<script>
    document.write(document);
</script>

渲染结果

2、元素节点:文档节点是根,所以他肯定有许多小弟了,比如 div 、p等等,都是元素节点,属于文档节点的下级。

3、属性和内容节点:id就是div的一个属性节点的节点名,“HTML DOM”就是div内容节点的节点值,节点名和节点值就是节点的属性之一。

<div id="div1">HTML DOM</div>

获取节点



获取元素节点

现在已经知道HTML DOM是由节点构成,那我们又如何获取节点呢。

  • document.getElementById       通过id获取元素节点 
  • getElementsByTagName       通过标签名称获取元素节点
  • getElementsByClassName         通过类名获取元素节点
  • getElementsByName                  通过表单元素的name获取元素节点

因为id是唯一的,所以上面除了通过id获取元素节点外,其他获取到的都是节点数组。

例如:

<!--id获取到是单个元素-->
<div id="div1" >
    HTML DOM
</div>

<script>
    var  div1 = document.getElementById("div1");   document.write(div1);
</script>

渲染结果
<!--其他获取到的是元素数组-->
<div id="div1" >
    HTML DOM
</div>

<script>
    var divs = document.getElementsByTagName("div");
    var div1 = divs[0];
</script>

渲染结果

遍历元素数组,根据javascript的知识,数组有个属性length,因此我们可以使用for循环遍历他

<!--其他获取到的是元素数组-->
<script>
    var element = document.getElementsByTagName("xxx");
    for(var i = 0; i < element.length; i++){
        document.write(element[i]);
    }
</script>

获取属性节点

首先需要获取到元素节点,然后可以通过attributes获取元素节点的属性节点,属性可以有多个,所以获取到是属性节点数组。

若要获取某一指定的属性的节点例如id,可以通过键名xx["id"]获取到属性节点。

<div id="d1" align="center" class="abc">hello HTML DOM</div>
<script>
    var  div1 = document.getElementById("d1");
    var as = div1.attributes;
    document.write("div总共有"+as.length +" 个属性");
    document.write("分别是:");
    for(i = 0; i< as.length; i++){
        document.write("<br>");
        document.write(as[i].nodeName);
        document.write(":");
        document.write(as[i].nodeValue);
    }
    document.write("<br>");
    document.write("div的id属性值是:"+ as["id"].nodeValue);
</script>

渲染结果

获取内容节点

通过childNodes获取到的第一个子节点就是内容节点

<div id="d1" align="center" class="abc">hello HTML DOM</div>
<script>
    var  div1 = document.getElementById("d1");
    var content = div1.childNodes[0];
    document.write("div的内容节点名是:"+content.nodeName);
    document.write("<br>");
    document.write("div的内容节点值是:"+content.nodeValue);
</script>

渲染结果

节点的属性


  • nodeName    节点名称
  • nodeValue     节点值
  • nodeType      节点类型
  • innerHTML    元素节点的文本信息
  • 元素节点的属性,可直接访问
    • id  
    • value  
    • className  
<div id="div1" class="d">
    愿用一生守护你
</div>
<hr>
<script>
    function w(s){
        document.write(s);
    }

    //元素节点
    var div1 = document.getElementById("div1");
    //属性节点数组
    var attrs = div1.attributes;
    //遍历属性节点
    for(var i = 0; i < attrs.length; i++){
        //节点名
        w(attrs[i].nodeName);
        w(" : ");
        //节点值
        w(attrs[i].nodeValue);
        w("<br>");
    }

    //获取内容节点的节点值
    var value = div1.childNodes[0].nodeValue;
    w(value);
    w("<br>");
    //获取内容节点太复杂了,简化一点
    var singleValue = div1.innerHTML;
    w(singleValue);
    w("<br>");

    //直接访问内置的属性
    w(div1.id);
    w("<br>");
    w(div1.className);
</script>

渲染结果

原文地址:https://www.cnblogs.com/hemou/p/11192820.html

时间: 2024-11-01 16:14:08

DOM分类及HTML DOM的相关文章

JavaScript操作DOM与jQuyer操作DOM的对比

1.通过jQuery方法包装后的对象,是一个类数组对象.它与DOM对象完全不同,唯一相似的是它们都能操作DOM. 2.通过jQuery方法包装后的对象,是一个类数组对象.它与DOM对象完全不同,唯一相似的是它们都能操作DOM.通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有那些方法,也不需要关心不同浏览器的兼容性问题,我们通过jQuery提供的API进行开发,代码也会更加精短. 3.jQuery是一个类数组对象,而DOM对象就是一个单独的D

dom.getAttribute(&#39;value&#39;) 和 dom.value 的区别

dom  是一个 input type="text" 使用: dom.setAttribute("value","2011"),只能通过 dom.getAttribute("value") 得到 2011 使用:  dom.value = 2012,只能通过 dom.value 得到 2012 也就是说: getAttribute 和 setAttribute 是一套, 直接使用属性是一套,两套完成不是一回事. 总结: 1.

javascript 中 dom.getAttribute(&quot;value&quot;) 与dom.value的差异

dom 是一个 input type="text" 手动修改 input 的值, 使用 dom.getAttribute("value") 只能得到 html Dom中的值,而不能得到修改后的值(即内存中的值): 可以通过 dom.value 得到修改后的最新值(内存中的值) 使用: dom.setAttribute("value","2011") , 只能通过 dom.getAttribute("value&quo

dom core,html dom,css dom,jquery 中的dom操作

前端开发中为达到某种目的,往往有很多方法:dom core,html dom,jquery; dom core/jquery主要通过函数调用的方式(getAttribute("属性名")/attr("属性名"))获取属性值, html dom一般利用属性的形式(element.属性名)获取对应属性值,形式相对简洁.此外,针对于css相关的对象,还有css dom 前端开发中的节点有三种:元素节点:文本节点和属性节点 js一般对于dom core和html dom都支

JavaScript基础及函数,BOM,DOM的节点及DOM节点操作

使用js的三种方式 1.直接在HTML标签中,使用事件属性,调用js代码: <button onclick="alert('点我呀')">点我啊!<tton> 2.在页面的任意位置,使用script标签 <script type="text/javascript"> alert('哈哈哈') </script> 3.外部:使用script标签 src属性选择外部地址, type属性选择"text/javasc

关于DOM的事件操作/DOM介绍/关于DOM操作的相关案例

一.关于DOM的事件操作 1.JavaScript基础分为三个部分: ECMAScript: JavaScript的语法标准,包括变量,表达式,运算符,函数,if语句,for语句 DOM: 文档对象模型, 操作网页上的元素的API, 比如让盒子移动, 变色,  轮播图等.. BOM: 浏览器对象模型, 操作浏览器部分功能的API, 比如让浏览器自动滚动 2.事件 JS是以事件驱动为核心的一门语言 3.事件的三要素 (1).事件的三要素: 事件源, 事件, 事件驱动程序 (2).总结: 事件源:

js学习总结:DOM节点二(dom基本操作)

一.DOM继承树 DOM--Document Object Model DOM定义了表示修改文档所需要的方法.DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和xml的一类厂商定义,也有人称DOM是对HTML以及xml的标准编程接口. 继承树模型图: 1.document继承于HTMLDocument,而HTMLDocument继承于Document; 2.文本节点对象Text与注释节点对象Comment继承于CharacterData 3.在Element节点下其实存在两个子节点,除

DOM的定义及DOM相关

DOM : Document Object Model 文档对象模型文档:html页面文档对象:页面中元素文档对象模型:定义 为了能够让程序(js)去操作页面中的元素 DOM会把文档看作是一棵树,同时定义了很多方法来操作这棵数中的每一个元素(节点) DOM节点 getElementByIdgetElementByTagNamedocumentdocument.body 元素.childNodes : 只读 属性 子节点列表集合:标准下:包含了文本和元素类型的节点,也会包含非法嵌套的子节点:非标准

&lt;DOM Scripting&gt;2:DOM

DOM(document object model),文档对象模型. 1 文档:DOM中的“D” 当创建的网页并加载到浏览器中,DOM 就悄然而生.它把网页文档转换为一个文档对象. 2 对象:DOM中的“O” JavaScript 中的三类对象: 用户定义对象(user-defined object):自行创建的对象 内建对象(native object):内建在 JavaScript 语言中的对象,如 Array.Math 和 Date 等 宿主对象(host object):由浏览器提供的对