DOM以及DOM树

JS有三个部分组成 ES DOM  BOM

DOM就是专门操作HTML内容的API

DOM分为核心DOM 与 HTML DOM两种,前者能够操作所有结构化文档,后者就对常用的API进行简化

网页中一切在内存中都是以树形结构存储的 存储上下级包含关系最直观的结构

HTML中的每一个元素:元素,属性,文本 都是一个节点对象(Node) document对象是整棵树的根节点

节点对象(Node) 三大属性:
 1.nodeType number
专门区分节点的类型:
9 document
1 element
2 attribute
3 text
需要区分节点类型的时候使用
 2.nodeName 节点名 字符串
document #document
element 全大写的标签名
attribute 属性名
文本节点 #text
进一步区分元素的名称时使用
 3.nodeValue 节点值
document null
element null
attribute 属性值
text 文本的内容

DOM就是对DOM树进行增删查改

document.getElementById() 按照ID查找属性 ,只能document调用,返回一个元素

document.getElementsByTagName() 按照标签元素查找属性 ,任何父元素都可以调用 ,返回值哪怕只有哦一个,也放在集合中 没有找到符合要求的子节点  返回一个空数组,查找不仅只查直接子节点,而且查找所有子代节点

document.getElementsByName() 按照name属性查找属性  ,只能document调用,返回动态数组

document.getElementsByClassName()按class属性查找属性 ,任何父元素都能调用
object.innerHTML 对双标签元素进行获取,写入;object.value 对单标签元素进行获取,写入

1.三个元素不需要找,直接获得:

<html> document.documentElement
<head> document.head
<body> document.body
2.节点之间的关系:
1)父子关系
node.parentNode 获得node的父节点
node.childNodes 获得node的所有子节点
node.firstChild 获得node下的第一个子节点
node.lastChild 后的node下最后一个子节点
2)兄弟关系
node.preivousSibling: 返回当前节点的前一个兄弟节点
node.nextSibling:返回当前节点的下一个兄弟节点
但是网页中的一切都是节点,包括换行和空字符

所以我们可以用元素树:仅包含元素节点的树结构 ---不是一颗新树 ,仅是节点数的子集
1)父子关系
elem.parentElement 返回一个父元素对象
elem.childen IE8支持 返回子元素对象集合
elem.firstElementChild 返回第一个子元素对象
elem.lastElementChild 返回最后一个子元素
2)兄弟关系
返回当前节点的前一个兄弟元素
elem.preivousElementSibling
返回当前节点的下一个兄弟元素
elem.nextElementSibling

document.createElement()在内存中创建一个元素。 
document.body.appendChild()尾部插入结点。

parent.insertBefore(elem,oldElem);在现有子元素之前插入新元素

parent.replaceChild(elem,oldElem);替换现有子元素

elem.parentNode.removeChild(elem);移除元素

原文地址:https://www.cnblogs.com/yzxyzx/p/11369864.html

时间: 2024-11-10 16:41:39

DOM以及DOM树的相关文章

Virtual DOM 虚拟DOM的理解(转)

作者:戴嘉华 转载请注明出处并保留原文链接( #13 )和作者信息. 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM树 4.2 步骤二:比较两棵虚拟DOM树的差异 4.3 步骤三:把差异应用到真正的DOM树上 5 结语 6 References 1 前言 本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量把 Virtual DOM 的算法思路阐述清楚.希望在阅读本

org.w3c.dom(java dom)解析XML文档

位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBu

DOM系列---DOM操作样式

发文不易,若转载传播,请亲注明出处,谢谢! 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别. DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息. DOM一致性检测 功能 版本号 说明 Core 1.0.2.0.3.0 基本的DOM,用于表

JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)

一.HTML DOM 概述 HTML DOM 概述 - HTML DOM 定义了用于 HTML 的一系列标准对象,以及访问和处理 HTML 文档的标准方法 - HTML 标签对象化 - 将网页中的每个元素都看作是一个对象 常用 HTML DOM 对象 标准 DOM 与 HTML DOM - HTML 标签对象化 - createElement - appendChild - setAttribute - removeAttribute - nodeName - ... - HTML DOM 提供

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都支

js 字符串转dom 和dom 转字符串

js 字符串转dom 和dom 转字符串 前言: 在javascript里面动态创建标准dom对象一般使用: var obj = document.createElement('div'); 然后再给obj设置一些属性. 但是,在实际使用过程中,有些人可能会想,要是能这样创建标准的dom对象就好了 伪代码:var obj=strToDom('<div id="div_1" class="div1">Hello World!</div>');

DOM之节点树操作

节点树  每个html页面载入浏览器的时候,浏览器都会生成一个树形结构,这个树形结构由节点组成,我们称之为节点树或文档树; 每个HTML标签都是元素节点 每个标签的属性都是属性节点 每个标签的文本内容都是文本节点 节点分为: 元素节点 属性节点  文本节点  注释节点 nodeType   获取节点的类型 nodeName   获取节点的名称 nodeValue  获取节点的值 节点 nodeType    nodeName    nodeValue   元素节点  标签名 1 null 属性节

[DOM]初识DOM

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM. DOM的出现统一了浏览器残次不齐的问题,大大地扩展了Javascript的工作内容.使得页面内容更加丰富. 这张图片展示的就是DOM树的结构. node:节点.类似树的结构,DOM由结点构成.结点又分为元素结点,文本结点和属性结点.元素结点很容易理解,想<a titile=

DOM,DOM,DOM,重要的事情要说 3 遍

DOM树与Render树 这个应该都是知道的.就是用户请求HTML下来后,浏览器渲染引擎的基本工作中两个概念. copy一张图,流程大概就是:解析html构建DOM树,渲染树构建,渲染树布局,绘制渲染树. 这里要注意的一点是,DOM树和render树并不是简单的一一对应关系.render树中并不包含那些不需要渲染的节点.比方说head.title这样的:display:none也是不会有的:还有一些设置position:absolute,fixed,构造render树时会根据实际情况来构造. 重