关于js的DOM

在HTML文档树中:树形的根部是Document节点,它代表整个文档;代表HTML元素的节点是Element节点;代表文本的节点是Text节点;Document、Element、Text是Node的子类;

getElementById():根据ID选取元素,对匹配元素的ID不区分大小写;

getElementsByName():根据name选取元素,返回一个NodeList对象;

如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向表示文档元素的HTMLElement对象;

在Document对象中,为<form>、<img>、<iframe>、<applet>、<embed>或<object>元素设置name属性值,在Document对象中会创建以此name属性值为名字的属性;

getElementsByTagName():通过标签名选取元素,返回NodeList对象;Element类也定义了getElementsByTagName()方法,只选取调用该方法的元素的后代元素;

HTMLDocument类定义了一些快捷属性来访问各种各样的节点,images、forms和links等属性指向行为类似只读数组的<img>、<form>和<a>,这些属性指代HTMLCollection对象,它们很像NodeList对象,但除此之外它们可以用元素的ID或名字来索引;HTMLDocument对象还有两个属性,document.body是HTML文档的<body>元素,document.head是<head>元素;

documentElement属性:指代文档的根元素,在HTML文档中,它中指代<html>元素;

getElementsByClassName():通过CSS类选取元素,类标识符之间用空格隔开;

querySelectorAll():接受包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList对象;返回的NodeList对象并不是实时的,并不更新后续文档的变化;

querySelector():返回第一个匹配的元素,如果没有返回null;


Node对象的重要属性:

parentNode属性:该节点的父节点;

childNodes属性:该节点的子节点的实时表示;

firstChild、lastChild:该节点的子节点中的第一个和最后一个;

nextSibling、previoursSibling:该节点兄弟节点中的前一个和后一个;

nodeType属性:该节点的类型;

nodeValue属性:Text节点或Comment节点的文本内容;

nodeName属性:元素的标签名,以大写形式表示;


Element对象:

children属性:是一个NodeList对象,只包含Element对象;

firstElementChild、lastElementChild:类似firstChild和lastChild,但只代表子Element;

nextElementSibling、previousSibling:类似nextSibling和previousSibling,但只代表兄弟Element;

shildElementCount属性:子元素的数量,返回值和children.length值相等;

getAttribute()、setAttribute()方法:用来查询和设置非标准的HTML属性;

hasAttribute()、removeAttribute()方法:用来检测命名属性是否存在和完全删除属性;

在HTML5文档中,任意以”data-“为前缀的小写的属性名字都是合法的,定义了一种标准的、附加额外数据的方法;HTML5还在Element对象上定义了dataset属性,该属性指代一个对象,它的各个属性对应于去掉前缀的data-属性;

attributes属性:它可以用数字索引也可以用属性名索引访问元素的所有属性;当索引attributes对象时得到的值是Attr对象,Attr的name和value属性返回该属性的名字和值;

innerHTML属性:作为字符串返回元素的内容;

outerHTML属性:返回的字符串包含被查询元素的开头和结尾标签;

textContent属性:将指定元素的所有后代Text节点简单地串联在一起;


创建节点:

Document对象的createElement()方法:创建新的Element节点;

Document对象的createTextNode()方法:创建Text节点;

每个节点有一个cloneNode()方法:返回该节点的一个全新副本,传参为true递归复制后代节点,传参为false只执行一个浅复制;


插入节点:

Node的appendChild()方法:插入指定的节点使其成为那个节点的最后一个子节点;

Node的insertBefore()方法:接受两个参数,第一个参数就是待插入的节点,第二个参数为已存在的节点,将新节点插入该节点的前面;该方法应该是在新节点的父节点上调用;


删除和替换节点:

removeChild():从文档树中删除一个节点;

replaceChild():删除一个子节点并用一个新的节点取而代之;第一个参数是新节点,第二个参数是需要代替的节点;


DocumentFragment:

是一种特殊的Node,它作为一个其他节点的一个临时的容器,是独立的而不是任何其他文档的一部分;可以通过createDocumentFragment()来创建;它的特殊之处在于它使得一组节点被当做一个节点看待;


Document的属性有body、documentElement和forms等这些特殊的文档元素,还有一些其他的属性:

cookie:允许JavaScript程序读、写HTTP cookie的特殊的属性;

domain:该属性允许当web页面之间交互时,相同域名下互相信任的web服务器之间协作放宽同源策略安全限制;

lastModified:包含文档修改时间的字符串;

location:与Window对象的location属性引用同一个Location对象;

referrer:表示浏览器导航到当前连接的上一个文档,该属性值和HTTP的Referer头信息的内容相同;

title:文档的<title>和</title>标签之间的内容;

URL:文档的URL;


可编辑的内容:

有两种方法来启用编辑功能:其一,设置任何标签的HTML contenteditable属性;其二,设置对应元素的JavaScript contenteditable属性;

将Document对象的designMode属性设置为字符串”on“使得整个文档可编辑;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值