x && x.nodeType!=1这个并且把我弄晕了,还有这个return x也不是很懂,求解答
x.nodeType!=1 并且x也不等于1吗?
x.nodeType!=1 并且x也不等于1吗?
2016-08-31
1、x && x.nodeType!=1 这个表达式貌似有点问题, x=n.nextSibling;x的返回值是一个节点或者是空,节点或空值不可能等于1!
楼主可以把它等价于:x.nodeType!=1,翻译过来就是:x的节点的节点类型不等于1,当节点的类型为1的时候,该节点是个元素节点,比如li p div什么的。
while (x.nodeType!=1){ x=x.nextSibling; },当x的节点的节点类型不等于1的时候,也就是x不是元素节点的时候,查找x的下一个节点,再对下一个节点的nodeType进行判断,是否等于1,一直循环下去。
2、 return x,是函数的返回值,也就是这个函数的计算结果,在该函数中返回的是:下一个节点,这个返回值会被外部调用,如果不调用,那就没有多大意义
举报