DOM:JavaScript如何获取标签所有的兄弟节点

JavaScript可以通过previousSibling和previousElementSibling,nextSibling和nextElementSibling获取紧邻的上一个,下一个兄弟(标签)节点。

但是这么做只能获取一个兄弟节点。如果要获取所有的兄弟节点呢?

方法一:原生态的JS方法

* 参数:tag  目标标签。
* 功能:返回 tag标签的所有兄弟标签数组
 let  findSibling = ( tag )=>{
        let  parentEl = tag.parentNode ;
        let  childs = parentEl.children ;
        let  siblings = [];
        for( let i = 0; i <= childs.length - 1 ; i++ ){
            if( childs[i] === tag  ){
                continue ;
            }
            siblings[ siblings.length] = childs[i];
         }
         return siblings ;
 };

思路:

通过目标标签 tag  的父节点,先找到所有的子标签。

然后,遍历这些子标签:

  1. 如果子标签就是tag,那么就绕过它--- 因为找兄弟标签,要除去tag自己。
  2. 反之,就把子标签放进一个数组中。

方法二:jQuery方法siblings

$(tag).siblings()     // tag 所有的兄弟标签
$(tag).siblings(".xx")     // tag 所有的类为xx的兄弟标签

虽然,jQuery方式简单就一句话。但是在这去jQuery化的时代,我还是推荐使用原生态JS来实现这功能。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值