关于这个的疑问 为什么要o= node 直接Node不行吗
<script>
let para = document.getElementById("para");
function getElementPrevious(node) {
while (node.previousSibling != null) {
if (node.previousSibling.nodeType == 1) {
return node.previousSibling;
}
node = node.previousSibling;
}
return null;
}
console.log(getElementPrevious(para));
</script>
正在回答 回答被采纳积分+1
同学你好,老师没有理解“直接Node”这句话指的是什么,同学有疑问的地方是“node = node.previousSibling;”这句代码吗?如果是的话,老师为你整体解释一下该段代码的含义,同学试着理解一下:
getElementPrevious这个方法是获取参数node的前一个兄弟元素节点(节点有很多类型,比如注释节点、元素节点,而我们要找的就是元素节点),因此要利用while,循环遍历node前面所有的节点,找到符合条件的;如果node前一个节点是符合条件的,那么就满足if的条件,直接将该节点返回即可,如果不符合条件,那么就要继续往前查找。举个简单的例子,初始参数node前面有A、B、C三个节点,先判断A,而A不满足条件,那么就要继续判断B,此时if语句下面的“node = node.previousSibling”相当于把node赋值为A,然后再进入while循环,在while循环中条件中“node.previousSibling”则是获取的B(A.previousSibling是B),然后再判断B,依次类推,如下:
如果不是这里,建议同学详细描述一下,可以粘贴截图,指明哪里不懂,或者自己写一下代码,标注出来哪里有疑问,老师再给你解答。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星