1.节点操作
节点的意义是:根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
整个文档是一个文档节点 document
每个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每个 HTML 属性是属性节点
注释是注释节点
1.节点类型
通过nodeType属性可以获取节点的类型
document的节点类型---9
标签的节点类型---1
属性的节点类型---2,getAttributeNode("属性"):获取元素的属性节点
文本的节点类型---3,元素的第一个子节点就是文本节点
2.节点名称
通过nodeName可以获取元素的节点名称
document的节点名称---#document
标签的节点名称---大写的标签名
属性的节点名称---属性名
文本的节点名称---#text
3.节点值
通过nodeValue可以获取元素的节点的值
document的节点值---null
标签的节点值---null
属性的节点值---属性值
文本的节点值---文本的内容
4.HTML DOM 节点树
通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点
节点之间的关系:
父节点--parentNode
父元素节点--parentElement
子节点--childNodes:标签节点、文本节点、注释节点 得到的是伪数组
子元素节点--children :标签节点
第一个子节点--firstChild:文本
第一个子元素节点--firstElementChild:第一个标签
最后一个子节点--lastChild:文本
最后一个子元素节点--lastElementChild: 最后一个标签
上一个子节点--previousSibling:文本
上一个子元素节点--previousElementSibling: 上一个标签
下一个子节点 --nextSibling:文本
下一个子元素节点--nextElementSibling: 下一个标签
总结:firstChild、lastChild、previousSibling、nextSibling获取到的都是文本,如果没有就是文本节点名称#text, firstElementChild、lastElementChild、previousElementSibling、nextElementSibling获取到的都是标签,如果没有就是空。
5.节点隔行换色-代码如下![](https://i-blog.csdnimg.cn/blog_migrate/b7a0638c44032dbc0b20e7463362e477.png)
6.插入节点
insertBefore() 方法可在已有的子节点前插入一个新的子节点。
提示: 如果你想创建一个新的文本列表项,在 LI 元素后你应该添加元素的文本节点,然后在列表中添加 LI元素。
你也可以使用 insertBefore 方法来 插入/移除 已存在的元素。
node.insertBefore(newnode,existingnode) 参数newnode是要插入的节点对象,existingnode是要添加新的节点前的子节点。
2.创建元素的三种方式
1.document.write() 弊端:只能往body中添加元素
2.innerHTML 弊端:在同级下只能添加一种元素,多个会覆盖
3.document.createElement() 父元素.appendChild(子元素):给父元素末尾添加子元素
3.BOM
BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
1.BOM的顶级对象
window是浏览器的顶级对象,当调用window下的属性和方法时,可以省略window注意:window下一个特殊的属性 window.name
2.对话框
alert()
prompt()
confirm()
3.加载事件
onload事件
onload 事件会在页面或图像加载完成后立即发生。
onload 通常用于 <body> 元素,在页面完全载入后(包括图片、css文件等等。)执行脚本代码。
4.Location对象
<!-- 协议(http/https)主机(域名。IP(公网ip,局域网ip))端口号 + 路径 +?参数 -->