DOM知识点总结
今天简单整理了一下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知识点总结的更多相关文章
- Javascript + Dom知识点总结
Javascript + Dom知识点总结 1.用Javascript声明数组和字典的方式 // 数组声明 var arr = new Array(); arr["0"] = &q ...
- javasctipt之DOM知识点
一:DOM节点 子节点:childNodes 父节点:parentNode offsetPrent 二:元素属性操作 方式一:xxx.style.xxx 方式二:xxx.style["xxx ...
- HTML DOM 知识点整理(一)—— Document对象
一.DOM对象 DOM对象整体包括: HTML DOM Document对象 HTML DOM 元素对象 HTML DOM 属性对象 HTML DOM 事件对象 HTML DOM Console 对象 ...
- HTML DOM知识点补充:
DOM Console 控制台对象提供了浏览器的debug的方法支持. 常用的:console.log(). ⚠️coffeescript中,这个方法不加括号. DOM Document 当一个HTM ...
- DOM 知识点梳理(笔记)
1998年10月DOM1级规范成为了W3C的推荐标准,为基本的文档结构及查询提供了接口. 一.Node类型 每个节点都有个nodeType属性,表明了节点的类型.共有12种类型: 元素节点 ...
- 前端DOM知识点
DOM即文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.DOM把网页和脚本 ...
- XML DOM 知识点
第一部分[DOM基础] DOM介绍: 1.什么是 HTML DOM? HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法(接口). 2.什么是 XML DOM? XML DO ...
- 《对象及DOM知识点及其应用1》
1.图片间的来回切换用if{}else{}; <超链接方式的切换图片(常用)>如:<a href="../images1/1-small.jpg" id=&quo ...
- JS DOM与BOM
DOM知识点 [DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过js ...
随机推荐
- 高性能JavaScript(1)
---------------------------------------------------------------------------------------------------- ...
- iBATIS typeHandler selectKey
typeHandler 是针对把数据库里面的某列的数据类型转换的应用程序中的数据类型,简单的说就是把 type=>dbType 反之把dbType=>type. 例如数据库某列的内容是l ...
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- 使用VMware Workstation 14 Player或者Oracle VM VirtualBox安装Fedora-Workstation-netinst-x86_64-27-1.6操作系统的相关记录
无论是在使用哪个(VMware或者Oracle VM)都遇到了一个问题:即使在安装完Fedoras操作系统之后,进行Reboot还是会进入之前一摸一样的安装界面,相当于再次安装.然而最最有效的解决办法 ...
- jQuery-3.事件篇---事件绑定与解绑
on()的多事件绑定 之前学的鼠标事件,表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理.翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个&quo ...
- Java中对Array数组的常用操作
目录: 声明数组: 初始化数组: 查看数组长度: 遍历数组: int数组转成string数组: 从array中创建arraylist: 数组中是否包含某一个值: 将数组转成set集合: 将数组转成li ...
- 关于memset赋值问题
学习借鉴自:https://blog.csdn.net/yexiaohhjk/article/details/52717934 memset是C语言头文件<string.h>中的一个函数, ...
- SqlSugar ORM 的学习
http://www.codeisbug.com/Doc/8/1163 https://www.cnblogs.com/sunkaixuan/p/6082664.html
- 前端自定义format函数,做字符串格式化功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 《DSP using MATLAB》Problem 7.15
用Kaiser窗方法设计一个台阶状滤波器. 代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...