DOM API

Node派生自Object,它包括ElementTextDocument(html)Coment,如果一个 API 是Node的,那它的子类也拥有。

DOM节点

DOM的最小组成单位就是节点(node)。DOM树就是由不同类型的节点组成。每个节点可以看成是DOM树上的叶子。

DOM中,节点的类型一共有7
Document:整个文档树的顶层节点;
DocumentTypedotype标签(比如:<!DOCTYPE html>
Element:网页的各种HTML标签(比如:<body> <h> <a> <div>
Attribute:网页元素的属性(比如:id="id" class="class" type="text"
Text:标签之间或标签包含的文本
Comment:注释
DocumentFragment:文档片段

Node 的接口

属性:
DOM API 记住下面的英文单词后各自组合就是 DOM 提供的 API

child/children/parent
node
first/last
next/previous
sibling/siblings
type
value/text/content
inner/outer
element

innerText添加文本,会覆盖原有文本
childNodes获取所有的子元素(会获取到回车)
children获取所有的子标签,没有文本
firstChild第一个元素,会有文本
lastChild最后一个元素,会有文本
firstElementChild,第一个标签,没有文本
previousSibling上一个元素,会有文本
nextSibling下一个元素,会有文本
previousElementSibling下一个标签,没有文本
nextSibling下一个元素,会有文本

nodeName获取节点名称都是大写,svg是特例,小写
nodeType获取节点类型,1是元素节点,3是文本节点,11是DocumentFragment

textContent会获取所有元素的内容,包括<script>style,而innerText不会

方法:
appendChild()添加一个子元素
cloneNode()接受参数true,深复制,有多少复制多少;不传参数,只复制最外面的一个
contains()表示一个元素是否包含另一个元素
hasChildNodes()表示一个元素是否有子元素,返回Boolean
insertBefore()把一个元素查到另一个元素前面
isEqualNode()相等,如果是两个一样的元素就是true
isSameNode()相同,如果是同一个元素就是true
removeChild()移除子元素,但依然在内存中,只是从页面中移除
replaceChild()交换一个子元素
normalize() // 常规化

var wrapper = document.createElement("div");

wrapper.appendChild( document.createTextNode("Part 1 ") );
wrapper.appendChild( document.createTextNode("Part 2 ") );

// At this point, wrapper.childNodes.length === 2
// wrapper.childNodes[0].textContent === "Part 1 "
// wrapper.childNodes[1].textContent === "Part 2 "

wrapper.normalize();

// Now, wrapper.childNodes.length === 1
// wrapper.childNodes[0].textContent === "Part 1 Part 2 "

Document接口是Document特有的,window.document所符合的就是这个接口,document是html的父元素,但html还是根元素

属性:
body获取body元素
characterSet获取字符编码
childElementCount子标签的数量,无符号长整型数字
children
doctype
documentElementhtml元素
domain
fullscreen
head
hidden
images
links
location
onxxxxxxxxx
origin
plugins检测插件
readyState
referrer引荐
scripts
scrollingElement获取正在滚动的元素
styleSheets
title
visibilityState页面是否被显示,正在看页面,返回true

方法:
close()关闭文档
createDocumentFragment()
createElement()
createTextNode()创建一个文本节点
execCommand()写一个富文本编辑器时可以用到
exitFullscreen()退出全屏
getElementById()
getElementsByClassName()
getElementsByName()通过name属性
getElementsByTagName()通过标签名
getSelection()回去用户选中的文本
hasFocus()用户是否Focus到上面
open()
querySelector()通过选择器获取,返回一个选择器(数组的形式,不过是伪数组)
querySelectorAll()通过选择器获取,返回所以选择器(数组的形式,不过是伪数组)
write()
writeln()写一行

Elelment

属性:
innertext用户输入啥就是啥
innerHTML如果用户输入标签名会写入HTML

ChildNode接口

用于处理子节点(包含但不限于Element子节点)。Element节点、DocumentType节点和CharacterData接口,部署了ChildNode接口。凡是这三类节点(接口),都可以使用下面四个方法。

(1)remove()移除当前节点
(2)before(), (3)after() , (4)replaceWith()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值