1 DOM概述

1.1 什么是DOM

  • 文档对象模型 Document Object Model
  • 文档对象模型 是表示和操作 HTML和XML文档内容的基础API
  • 文档对象模型,是W3C组织推荐的处理可扩展标志语言的标准编程接口

1.2 DOM分类

  • 核心 DOM - 针对任何结构化文档的标准模型
  • XML DOM - 针对 XML 文档的标准模型
  • HTML DOM - 针对 HTML 文档的标准模型

1.3 DOM分级

  • 1级dom

    1级DOM在1998年10月份成为W3C的提议,由DOM核心与DOM HTML两个模块组成。DOM核心能映射以XML为基础的文档结构,允许获取和操作文档的任意部分。DOM HTML通过添加HTML专用的对象与函数对DOM核心进行了扩展。
  • 2级dom

    通过对原有DOM的扩展,2级DOM通过对象接口增加了对鼠标和用户界面事件、范围、遍历(重复执行DOM文档)和层叠样式表(CSS)的支持。
  • 3级dom

    3级DOM通过引入统一方式载入和保存文档和文档验证方法对DOM进行进一步扩展,DOM3包含一个名为“DOM载入与保存”的新模块,DOM核心扩展后可支持XML1.0的所有内容,包括XML Infoset、 XPath、和XML Base。

1.4 DOM树

2 节点

2.1 什么是节点

文档中的每一个部分都是节点,包括document 元素 属性 文本...

2.2 节点的分类

  • Document
    Element 元素 Attr 属性
  • Text 文本
  • Comment 注释

2.3 节点属性

  • nodeName 节点名字

    document :  #document
    element : 标签名
    attr : 属性名
    text : #text
    comment : #comment
  • nodeValue 节点值

    document : null
    element : null
    attr : 属性值
    text : 文本内容
    comment : 注释内容
  • nodeType 节点类型

    document : 9
    element : 1
    attr : 2
    text : 3
    coment : 8

3 获取元素对象

  • 通过ID获取元素

    document.getElementById()
    id属性可自动成为被脚本访问的全局变量
  • 通过name值获取元素

    document.getElementsByName()
    IE9+和标准浏览器认为 所有的元素都有name
    IE9- 认为只有个别元素有name
    表单和表单控件
    img iframe embed object .... docuemnt会为某些元素创建以元素name为名字的属性
    <form>
    <img>
    .......
  • 通过标签名获取元素

    document.getElementsByTagName()
    element.getElementsByTagName()
    document.images 所有img的引用
    document.forms 所有表单的引用
    document.links 所有超链接的引用
    docuent.anchors 所有锚点的引用
  • 通过类名选取元素(IE9+)

    document.getElementsByClassName()
    element.getElementsByClassName()
  • 通过CSS选择器选取元素

    document.querySelectorAll()
    document.querySelector()
    element.querySelectorAll()
    element.querySelector()
  • 获取所有的元素

    document.all

4 文档结构和遍历文档

4.1 节点关系

  • 父节点 父元素
  • 子节点 子元素
  • 同辈节点 同辈元素
  • 祖先节点 祖先元素
  • 后代节点 后代元素

4.2 作为节点树的文档

  • parentNode 父节点
  • childNodes 所有子节点的集合
  • firstChild 第一个子节点
  • lastChild 最后一个子节点
  • nextSibling 下一个兄弟节点
  • previousSibling 上一个兄弟节点

4.3 作为元素树的文档

  • parentElement 父元素 大部分情况下 parentElement 等同于 parentNode
  • children 所有子元素的集合
  • firstElementChild IE9+ 第一个子元素
  • lastElementChild IE9+ 最后一个子元素
  • nextElementSibling IE9+ 下一个兄弟元素
  • previousElementSibling IE9+ 上一个兄弟元素
  • childElementCount IE9+ 子元素的数量
  • ownerDocument 返回元素所属的文档对象

5 属性

5.1 HTML标签的属性和元素对象的属性

HTMLElement对象映射了元素的HTML属性

5.2 获取和设置非标准的HTML属性

  • getAttribute(attrname) 获取自定义或内置属性的值
  • setAttribute(attrnane, value) 设置自定义或内置属性
  • hasAttribute(attrname) 判断是否存在该属性
  • removeAttribute() 移出自定义或内置的属性

5.3 作为Attr节点的

  • arrtibutes 属性
  • setAttributeNode()
  • getAttributeNode()
  • document.createAttribute() 创建属性节点

6 元素的内容

6.1 作为HTML的元素内容

  • innerHTML
  • outerHTML

6.2 作为纯文本的元素内容

  • textContent IE9+
  • innerText 会忽略多余空白

6.3 作为Text节点的元素内容

文本节点的方法

appendData()    向文本节点追加内容
deleteData() 删除文本节点的一部分内容
insertData() 向文本节点中插入内容
replaceData() 替换内容
substringData() 截取内容

创建文本节点

document.createTextNode()

7 创建、插入、删除 节点

7.1 创建节点

document.createElement()

7.2 插入节点

appendChild()    在元素的最后追加一个子元素
insertBefore() 在元素指定的位置插入一个子元素

7.3 删除节点

removeChild()

7.4 替换节点

replaceChild(new_node, old_node)

7.5 克隆节点

cloneNode()
参数
true 克隆元素以及所有的厚点节点
false 仅仅克隆节点本身

7.6 DocumentFragment

document.createDocumentFragment()可以创建该对象

DocumentFragment 接口表示文档的一部分(或一段)。更确切地说,它表示一个或多个邻接的 Document 节点和它们的所有子孙节点。

DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null。

请求把一个 DocumentFragment 节点插入文档树时,插入的不是 DocumentFragment 自身,而是它的所有子孙节点。这使得 DocumentFragment 成了有用的占位符,暂时存放那些一次插入文档的节点

8 元素的尺寸、位置、滚动

8.1 元素坐标

offsetLeft    距离左边的距离, 相对规则同 css 的定位
offsetTop 距离上边的距离, 相对规则同 css 的定位
offsetParent 得到第一定位的祖先元素
clientLeft 没卵用 就是边框宽
clientTop 没卵用 就是边框宽
getBoundingClientRect() 返回对象 包含位置信息 大小信息

8.2 判定某个元素在某点

document.elementFromPoint()

8.3 查询元素的几何尺寸

getBoundingClientRect()
getClientRects()
offsetWidth
offsetHeight
clientWidth
clientHeight
scrollWidth
scrollHeight

8.4 滚动

scrollLeft
scrollTop

9 Document对象

每个载入浏览器的 HTML 文档都会成为 Document 对象。 Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

9.1 属性

URL        获取当前页面的url 只读
domain 获取域名
referrer 获取上一个页面的地址 只读
title
location
lastModified
cookie

9.2 方法

write()
writeln()

10 HTML表单中的相关对象

10.1 选取表单和表单元素

10.2 表单和表单元素的属性

10.3 from对象

属性

elements    所有表单控件组成的集合

方法

submit()    让表单提交
reset() 让表单重置

10.3 按钮(button submit reset)对象

方法

focus()    获得焦点
blur() 使失去焦点
click() 使按钮比被单击

10.4 单选复选

方法

focus()    获得焦点
blur() 失去焦点
click() 被单击

10.5 文本(input textarea)

方法

focus()    获取焦点
blur() 失去焦点
select() 全部被选中

10.6 select对象

属性

options
selectedIndex
length 选项的数量

方法

add()    添加选项
remove() 移出选项, 参数是option的索引
focus() 获取焦点
blur() 失去焦点

11 Table中相关对象

11.1 table对象

属性

cells    返回包含表格中所有单元格的一个数组。
rows 返回包含表格中所有行的一个数组。

方法

createCaption()    为表格创建一个 caption 元素。
deleteCaption() 从表格删除 caption 元素以及其内容。
createTHead() 在表格中创建一个空的 tHead 元素。
deleteTHead() 从表格删除 tHead 元素及其内容。
createTFoot() 在表格中创建一个空的 tFoot 元素。
deleteTFoot() 从表格删除 tFoot 元素及其内容。
insertRow() 在表格中插入一个新行。
deleteRow() 从表格删除一行。

11.2 tr对象

属性

cells    返回包含行中所有单元格的一个数组。
rowIndex 返回该行在表中的位置。

方法

deleteCell()    删除行中的指定的单元格。
insertCell() 在一行中的指定位置插入一个空的 <td> 元素。

11.3 td对象、th对象

属性

cellIndex    返回单元格在某行的单元格集合中的位置。

文档对象类型DOM的更多相关文章

  1. 第一百一十四节,JavaScript文档对象,DOM进阶

    JavaScript文档对象,DOM进阶 学习要点: 1.DOM类型 2.DOM扩展 3.DOM操作内容 DOM自身存在很多类型,在DOM基础课程中大部分都有所接触,比如Element类型:表示的是元 ...

  2. 第一百一十三节,JavaScript文档对象,DOM基础

    JavaScript文档对象,DOM基础 学习要点: 1.DOM介绍 2.查找元素 3.DOM节点 4.节点操作 DOM(Document Object Model)即文档对象模型,针对HTML和XM ...

  3. DOM文档对象总结

    DOM总结: DOM:文档对象模型document object model DOM三层模型: DOM1:将HTML文档封装成对象 DOM2:将XML文档封装成对象 DOM3:将XML文档封装成对象 ...

  4. 前端开发—BOM对象DOM文档对象操作

    BOM 浏览器对象 BOM:Browser Object Model 操作浏览器,需要调用window对象,它是所有浏览器都支持的对象,表示的就是浏览器窗口 window对象可以通过点调用子对象 wi ...

  5. js操作文档对象的节点

    好吧,为了能让大家不至于睡着,我们先回顾先前面的东东吧~ 1.首先我们写了javaScriput的是一门弱类型的解释性的脚本语言:弱类型:我们的变量不用申明其具体的数据类型,在使用的时候浏览器根据其存 ...

  6. 数组对象元素的添加,String对象,BOM对象以及文档对象的获取

    数组对象的删除有三种方法: pop();        //移除最后一个元素并返回该元素值shift();      //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); / ...

  7. 框架和内嵌框架--->frameset 和 iframe 的文档对象

    框架和内嵌框架分别用 HTMLFrameElemnt 和 HTMLIFrameElement 表示,它们在 DOM2 中有一个新属性----->contentDocument,是一个指针,表示框 ...

  8. 怎样获取从服务器返回的xml或html文档对象

    使用 xhr.responseXML;  通过这个属性正常获取XML或HTML文档对象有两个前置条件: 1. Content-Type头信息的值等于: text/xml 或 application/x ...

  9. JavaScript的DOM(文档对象)基础语法总结2

    1.getAttribute()方法,通过元素节点的属性名称获取属性的值. //语法 elementNode.getAttribute(name) //element(元素);Node(节点) //注 ...

随机推荐

  1. gradle中的compileSdkVersion和buildToolsVersion

    CompileSdkVersion:编译版本,就是运行这个项目需要的SDK,即API Level. buildToolsVerson:是构建工具的版本,构建工具包括了打包工具aapt.dx等等. 注意 ...

  2. SQL Server中事务transaction如果没写在try catch中,就算中间语句报错还是会提交

    假如我们数据库中有两张表Person和Book Person表: CREATE TABLE [dbo].[Person]( ,) NOT NULL, ) NULL, ) NULL, [CreateTi ...

  3. October 26th, 2017 Week 43rd Thursday

    For success, attitude is equally as important as ability. 为取得成功,态度与能力一样重要. Today I read a news about ...

  4. XtraEditors七、ProgressBarControl、MarqueeProgressBarControl、ProgressPanel控件

    一.ProgressBarControl 进度条控件 效果如下: 示例代码: using System; using System.Collections.Generic; using System. ...

  5. Emmm,从删库到跑路系列之.......Root权限的重要性

    中午导入了一个.SQL文件,晚上查navicat的数据库死活打不开 错误代码1030,想起来中午导入了mysql数据库的user表,而那里面什么也没有... 默默删掉了data,然后emmm --in ...

  6. 前端工程构建工具之Yeoman

    一.Yeoman 简介 通常在开发新项目时我们都需要配置工程环境,开发目录,需要下载一些库.框架文件(如 jQuery.Backbone 等),配置编译环境(Less.Sass.Coffeescrip ...

  7. 常用npm 命令

    npm 官方网站:npm的使用说明   安装模块 npm install 安装当前目录package.json文件中配置的dependencies模块   安装本地的模块文件 npm install ...

  8. scrt中使用alt键

    session Options-->Terminal---->Emulation------>Emacs----->Use ALT as meta key

  9. [转]OPENCV3.3+CUDA9.0 环境搭建若干错误总结

    编译OpenCV设计启用OpenGL三维可视化支持和启用GPU CUDA并行加速处理的基本知识: 1.从2.4.2版本开始,OpenCV在可视化窗口中支持OpenGL,这就意味着在OpenCV中可以轻 ...

  10. C#游戏开发中精确的时间调配

    方法一:参考<精通C#游戏编程>一书.根据学习WorldWind源码可知,WorldWind中采用的方法与该方法基本一致. using System; using System.Colle ...