获得一个元素的所有兄弟元素节点,是需要包含它自己的对吗。得把它本身拼接上吗

获得一个元素的所有兄弟元素节点,是需要包含它自己的对吗。得把它本身拼接上吗

<!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>

https://img1.sycdn.imooc.com//climg/62b6cc220925cb4316561008.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学理解的是对的。

这里是说要将一个元素的所有兄弟节点都获取到,那么这里使用的是concat方法进行的拼接,拼接时把全部的都要装到数组中。如下图打印一下看看结果

https://img1.sycdn.imooc.com//climg/62b6ce47094138c310470791.jpg

https://img1.sycdn.imooc.com//climg/62b6ce5909e6505204850078.jpg

那么这里就是将当前传递的node前后的兄弟元素全部concat到一起。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师