Skip to content

Instantly share code, notes, and snippets.

@xjinza
Last active September 6, 2018 12:54
Show Gist options
  • Save xjinza/0615ff9f085b8686e29202c031c482ad to your computer and use it in GitHub Desktop.
Save xjinza/0615ff9f085b8686e29202c031c482ad to your computer and use it in GitHub Desktop.
parentNode 和parentElement 区别
#### 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