为了账号安全,请及时绑定邮箱和手机立即绑定

这 写错了吧while ((elem = elem[dir]) && elem.nodeType !== 9) {

while ((elem = elem[dir]) && elem.nodeType !== 9) {


一个等号?

正在回答

4 回答

(elem = elem[dir]) && elem.nodeType !== 9
=>
elem = elem[dir] //返回elem的dir属性,并赋值给elem(这个属性的值是节点类型,例如dir="parentNode")
&&
elem.nodeType !== 9   //赋值后的elem的nodeType 不等于9,也就是赋值后的elem不是document

当满足上面的两个条件的时候,继续循环。那么什么时候退出循环呢?

  1. 调用dir属性无法获取到值

  2. 调用dir属性得到的节点是document

0 回复 有任何疑惑可以回复我~

这一步是将循环条件中设置当前元素为上一次执行循环时的元素的父节点,以便向上遍历,并且直到当前元素为document对象本身为止

0 回复 有任何疑惑可以回复我~

没有错误,取出对应的值

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这 写错了吧while ((elem = elem[dir]) && elem.nodeType !== 9) {

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信