仿jQuery的siblings效果的js原生代码

仿jQuery的siblings效果的js原生代码

《previousSibling》 属性返回选定节点的上一个同级节点(在相同树层级中的前一个节点)。

《nextSibling》 属性返回被选节点的下一个同级节点(在相同树层级中的下一个节点)。

如果不存在这样的节点,则该属性返回 null。//元素节点的节点类型是 1  obj.previousSibling.nodeType ==1;

reverse() 方法用于颠倒数组中元素的顺序。

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

function siblings(o){//参数o就是想取谁的兄弟节点,就把那个元素传进去 
var a=[];//定义一个数组,用来存o的兄弟元素 
var p=o.previousSibling; 
while(p){//先取o的哥哥们 判断有没有上一个哥哥元素,如果有则往下执行 p表示previousSibling 
if(p.nodeType===1){ 
a.push(p); 
} 
p=p.previousSibling//最后把上一个节点赋给p 
} 
a.reverse()//把顺序反转一下 这样元素的顺序就是按先后的了 
var n=o.nextSibling;//再取o的弟弟 
while(n){//判断有没有下一个弟弟结点 n是nextSibling的意思 
if(n.nodeType===1){ 
a.push(n); 
} 
n=n.nextSibling; 
} 
return a//最后按从老大到老小的顺序,把这一组元素返回 
} 

 

转载于:https://www.cnblogs.com/masterccc/p/4948498.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值