DOM

Dom节点

  • 什么是节点

    HTML 文档中的每个成分都是一个节点。

(1)节点类型

DOM 是这样规定的:

  • 整个文档是一个文档节点
  • 每个 HTML 标签是一个元素节点
  • 包含在 HTML 元素中的文本是文本节点
  • 每一个 HTML 属性是一个属性节点
  • 注释属于注释节点

(2)节点层次关系-节点彼此都有等级关系。

  • HTML 文档中的所有节点组成了一个文档树(或节点树)。

  • HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。

  • <head><body> 的父节点是 <html> 节点,文本节点 “Hello world!” 的父节点是 <p> 节点。
    <head> 节点有一个子节点:<title> 节点。<title> 节点也有一个子节点:文本节点 “DOM Tutorial”。

  • 当节点分享同一个父节点时,它们就是同辈(同级节点)。比方说,<h1><p>是同辈,因为它们的父节点均是 <body> 节点。

  • 节点也可以拥有后代,后代指某个节点的所有子节点,或者这些子节点的子节点。

  • 节点也可以拥有先辈。先辈是某个节点的父节点,或者父节点的父节点,以此类推。比方说,所有的文本节点都可把 <html> 节点作为先辈节点。

(3)节点属性

每个节点都拥有包含着关于节点某些信息的属性。这些属性是:

  • nodeName(节点名称)
  1. 元素节点的 nodeName 是标签名称
  2. 文本节点的 nodeName 永远是 #text
  3. 注释节点的 nodeName 永远是 #comment
  • nodeValue(节点值)
  1. 文本节点,nodeValue 属性包含文本
  2. 元素节点nodeValue不可用
  3. 注释节点nodeValue包括注释内容
  • nodeType(节点类型)

    • 节点属性

      • nodeName(节点名称)

        • 元素节点的 nodeName 是标签名称
        • 文本节点的 nodeName 永远是 #text
        • 注释节点的 nodeName 永远是 #comment
      • nodeValue(节点值)

        • 文本节点,nodeValue 属性包含文本。
        • 注释节点nodeValue包括注释内容
      • nodeType(节点类型)

        • 元素—1
        • 属性----2
        • 文本----3
        • 注释—8
        • 文档----9
  • 获取Dom元素

    • documeng.getElementById()

      • 通过id获取元素
    • document.getElementByTagName()

      • 通过标签名获取标签列表,只能通过document获取,HTMLCollection
    • document.getElementByName()

      • 通过name属性获取节点列表,只能通过document获取,NodeList是有forEach方法遍历
    • document.getElementByClassName(新)

      • 通过Class名获取标签列表,任何标签都可以获取其子项中Class列表,HTMLCollection
    • document.querySelector(新)

      • 根据标签名获取第一个元素
    • document.querySelectorAll(新)

      • 获取所有标签名的元素
  • 节点的创建

    • document.createElement(“标签名”) : 创建新元素
    • document.createTextNode("") : 创建文本节点
  • 节点的插入

    (父对象.insertBefore(新插入的对象,目标插入对象之前(兄弟节点对象),当父对象下无子节点的时候不适用)
    document,.body

    • appendChild(node) : 向childNodes末尾插入一个节点node
    • insertBefore(newElement,targetElement) : 向targetNode之前插入节点node
  • 节点的替换

    • replaceChild(newNode,oldNode) : newNode替换节点oldNode
  • 节点的删除

    • removeChild(node) : 移除父节点的某个子节点
    • remove():移除当前节点
  • 节点的复制

    cloneNode(boolean) : 复制一个节点 复制节点后使用插入或者添加都可以完成节点的粘贴,但是仅能粘贴一次,仅为最后一次
    true:深复制,复制节点及其整个子节点树
    false : 浅复制,只复制节点本身。

    • cloneNode(boolean) : 复制一个节点
  • 节点的遍历

    • childNodes:所有子节点 获取所有子节点(包括注释)
    • children:所有是标签类型的子节点 获取所有子元素
    • parentNode:获取已知节点的父节点
    • parentElement 取已知节点的父元素
    • firstElementChild : 第一个子节点 (元素)
    • firstChild : 第一个子节点
    • lastElementChild:最后一个子节点(元素)
    • lastChild:最后一个子节点
    • nextElementSibling:下一个兄弟节点(元素)
    • nextSibling:下一个兄弟节点
    • previousElementSibling:上一个兄弟节点
    • previousSibling:上一个兄弟节点

Dom属性

  • DOM 对象属性

    • 分为自定义型和原DOM对象属性
    • DOM的对象原属性与DOM对象的标签属性部分对应,部分有差别
  • DOM 标签属性

    1.设置标签的属性和值,值和属性都必须是字符类型。2.DOM的标签属性命名,不能使用大小写区分不适用下划线区分。
    3.属性名必须全小写字母,并且使用-区分每个单词

    • getAttribute(属性):

      • 获取标签属性
    • setAttribute(属性,值):

      setAttribute(属性,值): 我们想要把 一个 类名 改为 demo
      div.setAttribute(“class”,”demo”);

      • 给节点创建一个新属性
    • removeAttribute(name)

      • 删除标签属性
  • Dom常用属性

    • document.body:body元素
    • document.title:获取、设置文档的标题
    • document.URL:获得完整的URL
    • document.domain:获取域名

Bom和Dom的区别

BOM

  1. BOM是Browser Object Model的缩写,即浏览器对象模型。
  2. BOM没有相关标准。不同浏览器定义有差别,实现方式不同。
  3. BOM的最根本对象是window。
    DOM
  4. DOM是Document Object Model的缩写,即文档对象模型。
  5. DOM是W3C的标准。
  6. DOM最根本对象是document(实际上是window.document)。
  7. DOM的最根本的对象是BOM的window对象的子对象
  8. BOM是浏览器对象模型,DOM是文档对象模型,前者是对浏览器本身进行操作,而后者是对浏览器(可看成容器)内的内容进行操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值