1.节点属性
属性名称 描述
parentNode : 返回节点的父节点
所以下面的h1的父节点是div:
childNodes : 返回子节点集合,childNodes[i]:这个节点包括换行的空格和注释;
firstChild : 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
lastChild : 返回节点的最后一个子节点
在ie8以上的浏览器是包括文本节点的,而ie8以下是不包括的;
nextSibling : 下一个节点:如果想获取下一个的下一个:格式:变量.nextSibling.nextSibling
previousSibling : 上一个节点
★★★PS:nextSibling : 下一个节点 和 previousSibling : 上一个节点 只能获取平级的节点。不能获取父节点的;
Element属性
属性名称 描述:
不包含空格和注释:
firstElementChild :返回节点的第一个子节点
lastElementChild :返回节点的最后一个子节点
nextElementSibling :下一个节点,找不到的话返回null;
previousElementSibling: 上一个节点,找不到的话返回null;
Element属性和传统普通属性的区别: 1.普通节点属性包括注释和空格;但是Element不包含;
2.Element向下不兼容,那么我们怎么解决不兼容的问题呢?
用“||”来判断,ie8以上走前面的程序,ie8走后面的程序;
var 变量名称 = 获取的元素.nextElementSibling || 获取的元素.nextSibling
var 变量名称 = 获取的元素.previousElementSibling || 获取的元素.previousSibling
var 变量名称 = oParent. firstElementChild || oParent.firstChild
var 变量名称 = 获取的元素.lastElementChild || 获取的元素.lastChild
例如:用兼容写法达到要求:
★★★:节点兼容问题:
谷歌浏览器是使用firstchild、lastchild、firstElementChild 、lastElementChild 是包括文本节点的;
ie8 以及以下浏览器是使用firstchild、lastchild、firstElementChild 、lastElementChild 是不包括文本节点的;
但是ie8会把注释当作是元素节点,会被选中,而ie5和ie7是不会把注释当作元素节点选中的;
节点信息
nodeName:节点名称 #text(文本节点包括换行和空格)、大写的元素名称、comment注释
nodeValue:节点值 “\n ”、“ LI ” 、“<-- 我是注释 -->”
nodeType:节点类型 3 1 8
👇
节点类型 NodeType值
元素element 1
文本text 3
注释comments 8
文档document 9
设置属性:
setAttribute():设置本来就有的属性,并为其赋指定的值;
removeAttribute()方法删除指定的属性;
例子: