今天简单整理了一下js三部曲之DOM部分的内容,二话不说先上笔记:

1.什么是DOM?
  Document Object Model,即文档对象模型,它是让JavaScript能够操作html和xml的一系列编程接口

2.<html></html>标签代表的是文档的根标签而不是整个文档,document代表的才是整个文档

3.查看元素节点
  document.getElementById() // 元素id在ie8以下的浏览器不区分大小写,而且也返回匹配name属性的元素。不过不常用,因为在开发的时候一般自己写的页面中只能出现一次或少数几次id,而这个id通常出现在页面顶层以作为后端抽取代码的接口
  document.getElementsByTagName() // 生成的是一个类数组对象,包括之后所有DOM和BOM系统给我们生成的成组的东西都是类数组对象。还有这个获取元素的方法是最主流的用法,它没有什么兼容性的问题。需要注意的是可以写成document.getElementsByTagName('*')
  document.getElementsByClassName() // ie8及以下的版本中没有这个方法
  document.getElementsByName() // 只有部分标签才需要添加name属性用意提交数据(表单、表单元素、img、iframe),在之前的浏览器里面给div等元素添加name属性是不能被识别的,所以不常用
  querySelector() // css选择器(在css中怎么选择,到了这里就可以怎么选择,比如.one>.two .three),在ie7及以下的版本中没有。因为选出来的元素不是实时的,所以在用法上及其受局限
  querySelectorAll() // 同上

4.遍历节点树
  parentNode // 父节点(最顶端的parentNode为#document,再向上返回null)
  childNodes // 子节点们
  firstChild
  lastChild
  nextSibling // 后一个兄弟节点
  previousSibling // 前一个兄弟节点

5.节点的类型(nodeType)
  元素节点 // 1
  属性节点 // 2
  文本节点 // 3
  注释节点 // 8
  document // 9
  documentFragment // 11。这是一个DOM元素占位符,用于将其子元素插入HTML文档树

6.节点的四个属性
  nodeName // 元素的标签名,以大写形式表示,只读
  nodeValue // 只有文本节点和注释节点有,text节点或comment节点的文本内容,可读写
  nodeType // 该节点的类型,只读
  attributes // 节点的属性集合

7.节点的一个方法:.hasChildNodes() // 是否含有子节点

8.基于元素节点树的遍历
  parentElement // 返回当前元素的父元素节点(ie9及以下不兼容)
  children // 返回当前元素的元素子节点(ie4.5有兼容问题)
  firstElementChild // 返回第一个子元素节点(ie9及以下不兼容)
  lastElementChild // 返回最后一个子元素节点(ie9及以下不兼容)
  nextElementSibling // 返回后一个兄弟元素节点(ie9及以下不兼容)
  previousElementSibling // 返回前一个兄弟元素节点(ie9及以下不兼容)

9.DOM结构树
  Node{
    Document{
      HTMLDocument
      XMLDocument
    }
    CharacterData{
      Text
      Comment
    }
    Element{
      HTMLElement{
        HTMLHeadElement
        HTMLBodyElement
        HTMLTitleElement
        HTMLParagraphElement
        HTMLInputElement
        HTMLTableElement
        etc.
      }
      XMLElement
    }
    Attr
  }

10.DOM结构树注意点
  ①getElementById方法定义在Document.prototype上,即Element节点上不能使用
  ②getElementsByName方法定义在HTMLDocument.prototype上,即非html中的document以外不能使用(XMLDocument,XHLElement)
  ③getElementsByTagName方法定义在Document.prototype和Element.prototype上,即既可以通过document.getElementsByTagName查找也可以通过div.getElementsByTagName查找
  ④HTMLDocument.prototype定义了一些常用的属性,document.body、document.head分别指代HTML文档中的<body><head>标签
  ⑤Document.prototype上定义了documentElement属性,指代文档的根元素,在HTML文档中,它总是指代<html>元素
  ⑥getElementsByClassName和querySelector、querySelectorAll在Document.prototype和Element.prototype上均有定义

11.增加节点的方法
  document.createElement()
  document.createTextNode()
  document.createComment()
  document.createDocumentFragment()

12.插入节点的方法
  PARENTNODE.appendChild() // 把页面中的一个元素节点添加到另一个地方相当于剪切操作
  PARENTNODE.insertBefore(a, b) // 在PARENTNODE里面insert a before b

13.删除节点的方法
  PARENTNODE.removeChild() // 返回被remove的节点
  SELFNODE.remove() // 返回被remove的节点

14.替换节点的方法
  PARENTNODE.replaceChild(new, origin)

15.Element节点的一些属性
  innerHTML
  innerText(老版本火狐不兼容)
  textContent(老版ie不好使)

16.Element节点的一些方法
  ELEMENT.setAttribute('name', 'value')
  ELEMENT.getAttribute('name')
  如果是想要修改或添加某个元素节点的class或id属性,那么可以简单的写作ELEMENT.className或是ELEMENT.id

  以上是我的笔记。这些基本上是DOM中用的比较多的,同时给出了浏览器的兼容性问题,希望对读者在DOM这一块有所帮助。

  如有错误或是不足,还请指出,我将尽快查证补漏!

DOM知识点总结的更多相关文章

  1. Javascript + Dom知识点总结

    Javascript + Dom知识点总结 1.用Javascript声明数组和字典的方式 // 数组声明 var arr = new Array(); arr["0"] = &q ...

  2. javasctipt之DOM知识点

    一:DOM节点 子节点:childNodes 父节点:parentNode offsetPrent 二:元素属性操作 方式一:xxx.style.xxx 方式二:xxx.style["xxx ...

  3. HTML DOM 知识点整理(一)—— Document对象

    一.DOM对象 DOM对象整体包括: HTML DOM Document对象 HTML DOM 元素对象 HTML DOM 属性对象 HTML DOM 事件对象 HTML DOM Console 对象 ...

  4. HTML DOM知识点补充:

    DOM Console 控制台对象提供了浏览器的debug的方法支持. 常用的:console.log(). ⚠️coffeescript中,这个方法不加括号. DOM Document 当一个HTM ...

  5. DOM 知识点梳理(笔记)

    1998年10月DOM1级规范成为了W3C的推荐标准,为基本的文档结构及查询提供了接口. 一.Node类型 每个节点都有个nodeType属性,表明了节点的类型.共有12种类型: 元素节点       ...

  6. 前端DOM知识点

    DOM即文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.DOM把网页和脚本 ...

  7. XML DOM 知识点

    第一部分[DOM基础] DOM介绍: 1.什么是 HTML DOM? HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法(接口). 2.什么是 XML DOM? XML DO ...

  8. 《对象及DOM知识点及其应用1》

    1.图片间的来回切换用if{}else{}; <超链接方式的切换图片(常用)>如:<a href="../images1/1-small.jpg" id=&quo ...

  9. JS DOM与BOM

    DOM知识点 [DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过js ...

随机推荐

  1. Sharepoint 2016 配置FBA(一) 创建Membership数据库

    在Sharepoint 2016上配置FBA(forms based authentication)的过程和Sharepoint 2013一样. 第一步:创建Membership数据库. 为了存放所有 ...

  2. C#获取当前日期时间

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

  3. java.io.IOException: 你的主机中的软件中止了一个已建立的连接。

    1.异常表现:我在jsp文件中有一个<form>表单,里面有一个<button>保存事件按钮.<button  onclick="addOrUPdate()&q ...

  4. RNA-seq 数据文件处理

    http://www.fungenomics.com/article/30 [专题]基因组学技术专题(二)-- 为什么说FPKM/RPKM是错的 下载数据 wget是linux下一个从网络上自动下载文 ...

  5. [转]CentOS7利用systemctl添加自定义系统服务

    原文:https://www.cnblogs.com/saneri/p/7778756.html CentOS7自定义系统服务 CentOS7的服务systemctl脚本存放在:/usr/lib/sy ...

  6. 【软件安装与环境配置】ubuntu16.04+caffe+nvidia+CUDA+cuDNN安装配置

    前言 博主想使用caffe框架进行深度学习相关网络的训练和测试,刚开始做,特此记录学习过程. 环境配置方面,博主以为最容易卡壳的是GPU的NVIDIA驱动的安装和CUDA的安装,前者尝试的都要吐了,可 ...

  7. 每天一本电子书 - JavaScript for Kids: A Playful Introduction to Programming

    JavaScript for Kids: A Playful Introduction to Programming 作者: Nick Morgan  出版社: No Starch Press 副标题 ...

  8. Python入门 (一)

    本文是个人python学习笔记,学习资料为廖雪峰python教程,如需更多内容,请移步廖老师官方网站. 一 安装 官网下载安装包安装,安装好之后,在命令提示符输入python进入Python交互模式: ...

  9. fiddler近期用到的一些新功能

    一,AutoResponder导出导入 将AutoResponder中的规则全部选中,右键选择 Export All,可以导出成rule.farx文件 导入时选择Add Rule右边的Import按钮 ...

  10. Development descriptor

    部署描述符指的是配置文件对于一个假象部署到一些容器/发动机. 在Java平台,企业版部署描述符描述组件.模块或应用程序(例如web应用程序或者企业应用程序)应该被部署.它指导部署工具部署具有特定容器选 ...