DOM的相关概念

【前面的话】DOM全称是Document Object Model,即文档对象模型。我们常说的html文档其实就是一个DOM树,DOM操作就是在内存中找到DOM树上我们想要的DOM对象,对它的属性进行修改,然后渲染引擎会把修改的结果重新绘制在界面上。DOM里面涵盖的知识点还是很多的,尤其是到后来要兼容浏览器的时候是很绕的,这次先讲一些DOM的相关概念,等聊完BOM之后,我会再针对兼容浏览器这块做个小总结。

1、节点的属性:

① nodeType

//节点
//nodeType  1-元素节点 , 2-属性节点 ,  3-文本节点

② nodeName

// nodeName 如果是标签则返回的是标签的名称;如果是文本则返回的是#text;如果是属性节点则返回属性的名称

③ nodeValue

// nodeValue 如果是标签则始终返回null ; 如果是文本节点则返回文本的内容 ;  如果是属性节点则返回属性的值

④节点的复制

    element.cloneNode();    // 克隆一个新的DOM对象;参数为Boolean类型,true赋值子节点,false不复制子节点
    element.appendChild();  // 追加元素
2、自定义属性:

2.1 任何浏览器都可以通过dom对象获取到标签的预定义属性

  2.2 chrome,新版IE(9及以上)无法获取标签的自定义属性;但IE8以前是可以通过dom对象获取到标签的自定义属性

 2.3 如何在任何浏览器中显示自定义属性呢??

——getAttribute可以获取标签的预定义属性;通过自定义属性获得的类型都是String

——设置属性的值:element.setAttribute(name,value)

——移除属性:element.removeAttribute(name)

附:

1 element.className = " ";     //仅删除class类的值,保留类名
2 element.removeAttribute("class")   //完全删除这个类

  2.4 属性的相关操作

1 // 获取属性节点
2     var attrNode = box.getAttributeNode("id");
3     console.log(attrNode.nodeType);   //属性节点的nodeType   2
4     console.log(attrNode.nodeName);   //属性节点的nodeName 属性的名称
5     console.log(attrNode.nodeValue);   //属性节点的nodeValue 属性的值
6
7  // 设置属性  setAttribute
8
9  //  移除属性  removeAttribute
3、层次结构

——父节点:parentNode

 ① 子节点:

1 childNodes  所有的子节点——DOM标准的方法,除了获取子标签以外,还会获取文本节点;IE8以前会忽略空白节点
2 children  所有的子元素——非标准的DOM方法,但是几乎所有的浏览器都支持,只会获取元素节点

 ② 兄弟节点,所有浏览器都支持

1  element.nextSibling 下一个兄弟节点,可能是非元素节点,会获取到文本节点
2  element.nextElementSibling 获取下一个紧邻的兄弟元素,会忽略空白   // IE8以前不支持此属性
3
4  element.previousSibling  上一个兄弟节点,可能是非元素节点,会获取到文本节点
5  element.previousSibling 获取上一个紧邻的兄弟元素,会忽略空白  // IE8以前不支持此属性

兄弟元素,IE8以前不支持

1  previousElementSibling 上一个兄弟节点
2  nextElementSibling  下一个兄弟节点
时间: 2024-10-10 19:29:22

DOM的相关概念的相关文章

Shadow DOM(二)

在前一篇博文中,简单地介绍了Shadow DOM是什么. 本文,将重点介绍Shadow DOM能做什么.如何创建Shadow DOM以及Shadow DOM的相关概念. Shadow DOM 能做什么 简单地说,有了Shadow DOM(若浏览器支持该规范),开发者可以封装HTML标签,CSS样式以及JavaScript,提供一个新的作用域空间.Shadow DOM结合后续将介绍的其他Web Components技术,开发者将具有开发出类似<input type="time"&g

数据库相关概念

第一节 一.相关概念 1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录. 2. Database:数据库,是长期储存在计算机内.有组织的.可共享的大量数据的集 合. 3. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于 科学地组织.存储和管理数据.高效地获取和维护数据. 4. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库.数据 库管理系统.应用系统.数据库管理员(DBA)构成. 5. 数据模型:是用来抽象.表示和处理现实世界

从零开始学 Web 之 DOM(一)DOM的概念,对标签操作

大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.DOM概念 DOM 的全称为:Document Object Model 文档对象模型 我们把 html 文件看成一个文档,因为万物皆对象,所以这个文档也是一个对象.这个文档中所有的标签都可以看成一个对象,比如

DOM事件机制(事件捕获和事件冒泡和事件委托)

内容: 1.事件复习 2.事件冒泡与事件捕获 3.事件委托 1.事件复习 (1)事件 事件是用来处理响应的一个机制,这个响应可以来自于用户(点击, 鼠标移动, 滚动), 也可以来自于浏览器 下面的链接描述了所有事件:https://developer.mozilla.org/en-US/docs/Web/Events (2)事件绑定 事件绑定有3种方法,前两钟方法在这里不介绍,主要看第三种: addEventListener方法(使用事件监听绑定事件) addEventListener: 1 e

虚拟DOM

DOM(Document Object Model)是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如果对前端工作进行抽象的话,主要就是维护状态和更新视图:而更新视图和维护状态都需要DOM操作. 在jQuery出现以前,我们直接操作DOM结构,这种方法复杂度高,兼容性也较差:有了jQuery强大的选择器以及高度封装的API,我们可以更方便的操作DOM,jQuery帮我们处理兼容性问题,同时也使DOM操作变得简单:MVVM使用数据双向绑定,使得我们完全不需要

JS学习--DOM

1.概念 文档对象模型DOM,定义访问和处理HTML文档的标准方法.DOM将HTML呈现为带有元素.属性和文本的树结构(节点树). 2.document.getElementById("id")--获取的是一个元素对象. documment.getElementById("id").innerHTML--才可获取其中的内容. 3.HTML样式 Object.style.property=new style;部分属性: 如: mychar.style.color=&q

高性能WEB开发:DOM编程

我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和Javascript(这里指ECMscript)各自想象为一个岛屿,它们之间用收费桥梁连接,ECMAscript每次访问DOM,都要途径这座桥,并交纳"过桥费",访问DOM的次数越多,费用也就越高.因此,推荐的做法是尽量减少过桥的次数,努力待在ECMAscript岛上.我们不可能不用DOM的接口,那么,怎样才能提高程序的效率? 1.DOM访问与修改 访问DOM元素是

dom方法insertAfter的实现

在dom的原生api中,只用insertBefore,没有insertAfter,借助原有的api,可以模拟一个insterAfter. function insterAfter(newElement,targetElement){ var parent = targetElement.parentNode; if(parent.lastChild == targetElement){ parent.appendChild(newElement); } else{ parent.insertBe

第十章—DOM(0)—NODE类型

DOM1定义了一个node接口,该接口由DOM的所有节点类型实现. 所有的节点都存在这样或那样的关系.在HTML中,head,body可以看出是html的子元素,html是head,body的父元素,而head,body互为同胞元素. 这里要注意一个概念:nodeList 输出: 如下例子: 1 <div id="myDiv"> </div><!-- 此处有空格 --> 2 <script> 3 var div = document.ge