获得一个元素的所有兄弟元素节点,是需要包含它自己的对吗。得把它本身拼接上吗
来源:3-13 封装节点关系函数
张小阳_
2022-06-25 16:50:47
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>获得一个元素的所有兄弟元素节点</title> </head> <body> <div id="ele"> <p>1</p> <p>2</p> <p id="third">3</p> <p>4</p> <p>5</p> <p>6</p> </div> <script> function getAllElementsSibling(node) { // 前面节点集合 var pervs = []; // 后面节点集合 var nexts = []; // 前面元素节点遍历 var ret = node; while (ret.previousSibling != null) { if (ret.previousSibling.nodeType == 1) { pervs.unshift(ret.previousSibling); } ret = ret.previousSibling; } // 后面元素节点遍历 ret = node; while (ret.nextSibling != null) { if (ret.nextSibling.nodeType == 1) { nexts.push(ret.nextSibling); } ret = ret.nextSibling; } return pervs.concat(node, nexts); }; console.log(getAllElementsSibling(third)); </script> </body> </html>
1回答
同学你好,同学理解的是对的。
这里是说要将一个元素的所有兄弟节点都获取到,那么这里使用的是concat方法进行的拼接,拼接时把全部的都要装到数组中。如下图打印一下看看结果
那么这里就是将当前传递的node前后的兄弟元素全部concat到一起。
祝学习愉快!
相似问题