老师讲的获取前一个兄弟元素的封装函数里面为什么要声明var o=node 而不直接用形参,另外最后为什么要写o=
来源:3-13 封装节点关系函数
weixin_慕村1291783
2020-10-30 11:58:54
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
另外最后为什么要写o=o.previousSibling; 上面有return不是直接就不执行下面代码了吗
1回答
同学你好,对于你的问题解答如下:
getElementPrevSibling方法中,直接使用形参node也是可以的,老师讲解的是另一种实现思路,为了讲解下一个方法做铺垫的,同学自己练习的时候,可以直接使用形参node实现效果。
以老师的代码为例讲解,因为并不能确保第一次查找到的就是前一个兄弟元素就是元素节点,所以如果当查找到的前一个兄弟元素不是元素节点,需要将查找到的元素赋值给o,然后才可以根据已经查找到的元素继续向前查找,直到找到前一个元素节点才return返回结果。
可以使用console.log语句输出测试下结果,如下:
打印结果如下:前几次查找的前一个兄弟元素都不属于元素节点,知道找到了id为fpara的元素才属于元素节点,它的nodeType属性值等于1,满足进入if语句,直接返回找到的上一个兄弟元素节点,才不再往后执行了。
祝学习愉快~
相似问题