Last active
September 6, 2018 12:54
-
-
Save xjinza/0615ff9f085b8686e29202c031c482ad to your computer and use it in GitHub Desktop.
parentNode 和parentElement 区别
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#### Node.parentNode | |
返回指定的节点在DOM树中的父节点. | |
对于下面的节点类型: Attr, Document, DocumentFragment, Entity, Notation,其parentNode属性返回null. | |
如果当前节点刚刚被建立,还没有被插入到DOM树中,则该节点的parentNode属性也返回null. | |
#### Node.parentElement | |
返回当前节点的父元素节点,如果该元素没有父节点,或者父节点不是一个元素节点.则 返回null. | |
DOM Level 4规范,mobile safari兼容性未知。 | |
参考:https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement | |
#### className | |
className 获取或设置指定元素的class属性的值。 | |
所有浏览器都兼容 | |
#### classList | |
Element.classList 是一个只读属性,返回一个元素的类属性的实时DOMTokenList 集合。 | |
使用 classList 是替代element.className作为空格分隔的字符串访问元素的类列表的一种方便的方法。 | |
兼容ie10及以上,mobile 兼容Android 3.0 和 Safari Mobile 5.0 | |
参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/classList | |
#### hasClass 原生js实现 | |
function hasClass(classname){ | |
let classes = el.className.split(/\s+/) | |
return classes.some(item => item === classname) | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment