function getNextElement(node){ if(node.nodeType == 1){ return node; } if(node.nextSibling){ return getNextElement(node.nextSibling); }return null;}第一个问题 当参数在第一个if里面如果为true执行完之后 还会不会去执行第二个if第二个问题 当我传入实参比如说a.nextSibling 那第一个if为false对吗?那是 a.nextSibling的节点 传入第二个if语句还是a.nextSibling传入这个if语句。谢谢!
1 回答
已采纳
闹小志
TA贡献75条经验 获得超42个赞
一、第一个问题:当执行到return的时候证明这个函数已经结束,所以不会去执行第二个if。
二、第二个问题:很明显在参数这个问题上你有些混乱了。if是true还是false和你传的参数形式无关,是和条件有关的。不管你传的实参是a,还是a.nextSibling,在函数中都只是一个node而已。你传a,if中的判断就是a.nodeType==1,你传a.nextsibling,if中的判断就是a.nextSibling.nodeType==1;同理,当传的参数是a.nextSibling,那第二个if语句中的判断就是a.nextSibling.nextSibling。
添加回答
举报
0/150
提交
取消