我是靠谱客的博主 完美方盒,最近开发中收集的这篇文章主要介绍一篇文带你了解文档对象模型DOM(Document Object Model),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

        • 内容介绍
        • 一、DOM概念
        • 二、获取节点:
          • 1、document:htmlcollection
            • ① getElementById
            • ② getElementsByIdName
            • ③ getElementsByTagName
            • ④ document.querySelector()
            • ⑤ document.querySelectorAll();nodelist
          • 2、 节点指针:
            • ① firstChild
            • ② lastChild
            • ③ childNodes
            • ④ previousSibling
            • ⑤ nextSibling
            • ⑥ parentNode
        • 三、节点操作
          • 1、创建节点
            • ① createElement
            • ② createAttribute
            • ③ createTextNode
          • 2、插入节点
            • ① appendChild
            • ② insertBefore
          • 3、替换节点
            • ① replaceChild
          • 4、复制节点
            • ① cloneNode
          • 5、删除节点
            • ① removeChild
        • 四、属性操作
          • 1、获取属性
            • ① getAttribute
            • ② setAttribute
        • 五、文本操作
        • 六、节点
          • 1、类型
          • 2、节点树
          • 3、属性
            • ① node.nodeType:
            • ② node.nodeName
            • ③ node.nodeValue
            • ④ node.nodeContent
          • 4、节点操作
            • ① 查找节点
        • 七、其他
          • 1、innerHTML与innerText
          • 2、innerHTML与outHTML
          • 3、appendChild()与innerHTML的区别

内容介绍

  DOM是JavaScript操作页面的接口,全称“文档对象模型”(Document Object Model)。

一、DOM概念

DOM是JavaScript操作页面的接口,全称“文档对象模型”(Document Object Model)
JS提供了一个比较大的对象,document,让咱们操作整个页面的DOM元素操作 => 增、删、改、查;

  • 文档:表示的时整个HTML网页文档 document;
  • 对象:表示将网页中的一个部分都转换为一个对象 object;
  • 模型:使用模型来表示对象之间的关系,这样方便获取对象 model;

JS中通过DOM来对HTML文档进行操作 - 在DOM中最大的对象是document。

二、获取节点:

1、document:htmlcollection
① getElementById

语法:document.getElementById(元素ID);
功能:通过元素ID获取节点;

② getElementsByIdName

语法:document.getElementsByName(元素name属性);
功能:通过元素的那么属性获取节点;

③ getElementsByTagName

语法:document.getElementsByTagName(元素标签);
功能:通过元素标签获取节点;

④ document.querySelector()
⑤ document.querySelectorAll();nodelist
2、 节点指针:
① firstChild

语法:父节点.firstChild;
功能:获取元素的首个子节点;

② lastChild

语法:父节点.lastChild;
功能:获取元素的最后一个子节点;

③ childNodes

语法:父节点.childNodes;
功能:获取元素的子节点列表;

④ previousSibling

语法:兄弟节点.previousSiblinig;
功能:获取已知节点的前一个节点;

⑤ nextSibling

语法:兄弟节点.nextSibling;
功能:获取已知节点的后一个节点;

⑥ parentNode

语法:子节点.parentNode;
功能:获取已知节点的父节点;

三、节点操作

1、创建节点
① createElement

语法:document.createElement(元素标签);
功能:创建元素节点;

② createAttribute

语法:document.createAttribute(元素属性);
功能:创建属性节点;

③ createTextNode

语法:document.createTextNode(文本内容);
功能:创建文本节点;

2、插入节点
① appendChild

语法:appendChild(所添加的新节点);
功能:向节点的子节点列表的末尾添加新的子节点;

② insertBefore

语法:insertBefore(所要添加的新节点,已知子节点);
功能:在已知的子节点前插入一个新的子节点;

3、替换节点
① replaceChild

语法:replaceChild(要插入的新元素,将被替换的老元素);
功能:将某个字节点替换为另一个;

4、复制节点
① cloneNode

语法:需要被复制的节点.cloneNode(true/false);
功能:创建指定节点的副本;
参数:
  true:复制当前节点及其所有子节点;
  false:仅复制当前节点;

5、删除节点
① removeChild

语法:removeChild(要删除的节点);
功能:删除指定的节点;

四、属性操作

1、获取属性
① getAttribute

语法:元素节点.getAttribute(元素属性名);
功能:获取元素节点中指定属性的属性值;

② setAttribute

语法:元素节点.setAttribute(属性名,属性值);
功能:创建或改变元素节点的属性;

五、文本操作

  • insertData(offset,String):从offset指定的位置插入string;
  • appendData(string):将string插入到文本节点的末尾处;
  • deleteData(offset,count):从offset起删除count个字符;
  • replaceData(off,count,string):从off将count个字符用string替代;
  • splitData(offset):从offset起将文本节点分成两个节点;
  • substring(offset,count):返回offset起的count个节点;

六、节点

  DOM的最小组成单位叫做节点(node)。文档的树形结构(DOM树),就是由各种不同类型的节点组成。每个节点可以看做是文档树的一片叶子。

1、类型
  • document:整个文档树的顶层节点;
  • documentType:doctype标签;
  • element:网页的各种HTML标签;
  • attribute:网页元素的属性;
  • text:标签之间或标签包含的文本;
  • comment:注释;
  • documentFragment:文档片段;
2、节点树
  • 浏览器原生提供document节点,代表整个文档:document;
  • 根节点:html:文档的第一层只有一个节点,就是HTML网页的第一个标签,其他HTML标签节点都是它的下级节点;
3、属性
① node.nodeType:
  • 元素节点(element):1;
  • 文档节点(document):9;
  • 属性节点(attr):2;
  • 文本节点(text):3;
  • 文档片段节点(documentFragment):11;
  • 文档类型节点(documentType):10;
  • 注释节点(comment):8;
② node.nodeName
  • 文档节点(document):#document;
  • 元素节点(element):大写的标签名;
  • 属性节点(attr):属性的名称;
  • 文本节点(text):#text;
  • 文档片段节点(documentFragment):#document-fragment;
  • 文档类型节点(documentType):文档的类型;
  • 注释节点(comment):#comment;
③ node.nodeValue

只有文本节点(text)、注释节点(comment)和属性节点(attr)有文本值;
属性返回一个字符串,表示当前节点和它的所有后代节点的文本内容;

④ node.nodeContent

textContent属性返回当前节点和它的所有后代节点的文本内容;

4、节点操作
① 查找节点

直接通过document对象进行查找:

  • html:document.documentElement;
  • url:document.url => 只读属性;
  • body
  • document.body => 获取整个的body对象;
  • document.head => 文档信息头;
  • document.title 文档标题 => 可读可写;
  • script标签:document.script => HTMLCollection 类数组,有长度

七、其他

1、innerHTML与innerText
  • innerHTML解析内容包含HTML标签;
  • innerText只解析纯文本,不包含HTML标签;
2、innerHTML与outHTML
  • outHTML包含对象标签本身;
  • innerHTML只包含对象标签内的内容,不包含标签本身;
3、appendChild()与innerHTML的区别
  • appendChild()只能传一个节点,且不直接传字符串(需appendChild(document.createTextElement(‘字符串’))代替);返回追加的Node节点(若appendChild()的参数时页面中已存在的一个元素,则执行后原来的元素会被移除;);
  • innerHTML添加的为纯字符串,不能获取内部元素的属性;添加的是dom对象,返回的也是dom对象,可以通过dom对象访问获取元素的各种属性;

性能:

  • innerHTML比appendChild方便,特别是创建的节点属性多,同时还包含文本的时候;
  • 执行速度上,appendChild比innerHTML快,特别是内容包括html标记时,appendChild快于innerHTML,innerHTML需要解析后执行,速度较慢;

标签:JavaScript,DOM


更多演示案例,查看 案例演示


欢迎评论留言!

最后

以上就是完美方盒为你收集整理的一篇文带你了解文档对象模型DOM(Document Object Model)的全部内容,希望文章能够帮你解决一篇文带你了解文档对象模型DOM(Document Object Model)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部