课程
/前端开发
/jQuery
/jQuery源码解析(DOM与核心模块)
while ((elem = elem[dir]) && elem.nodeType !== 9) {
一个等号?
2015-06-12
源自:jQuery源码解析(DOM与核心模块) 1-2
正在回答
(elem = elem[dir]) && elem.nodeType !== 9 => elem = elem[dir] //返回elem的dir属性,并赋值给elem(这个属性的值是节点类型,例如dir="parentNode") && elem.nodeType !== 9 //赋值后的elem的nodeType 不等于9,也就是赋值后的elem不是document
当满足上面的两个条件的时候,继续循环。那么什么时候退出循环呢?
调用dir属性无法获取到值
调用dir属性得到的节点是document
这一步是将循环条件中设置当前元素为上一次执行循环时的元素的父节点,以便向上遍历,并且直到当前元素为document对象本身为止
没有错误,取出对应的值
举报
由浅入深的剖析jQuery库的设计与实现,揭开框架背后的秘密
3 回答elem=elem[dir]是什么意思啊 ,老师
4 回答(elem = elem[ 'parentNode' ]) 是什么意思
3 回答elem['parentNode'] ??
5 回答target = manipulationTarget(this, elem);这个是坐什么
5 回答function sibling(n, elem)中的elem表示当前元素 ,n表示什么