关于DOM节点的逆序

![](https://images0.cnblogs.com/blog/588990/201410/200944383875171.jpg)


今天刷微博的时候看到了这个,竟然敢黑我大JQ!瞬间就忍不住了!

```javascript
  var parentNode = document.querySelector(".reverse");
  var nodeArr = [];
  nodeArr = [].concat.apply(nodeArr, parentNode.children).reverse();
  while(nodeArr.length>0){
    parentNode.appendChild(nodeArr.shift())
    console.log(nodeArr)
  }
```

上面是JS的,接下来写一段JQ的

```
  var parentNode = $('.reverse');
  var childNode = parentNode.children();
  $.each(childNode,function(index,node){
    $(node).prependTo(parentNode);
    console.log(index,node)
  })
```

上面的代码看上去的思路都应该很清晰,接下来简化下代码。
```
var parentNode = document.querySelector('.reverse');
[].slice.apply(parentNode.children).reverse().reduce(function(x,y){parentNode.appendChild(y)});
```
`querySelector`和`reduce`都是Ecmascript5里面的新方法,当然如果你要丧心病狂的把parentNode替换掉的话,我也不反对。。

接下来看!!!简化的JQ多简单!!!1行!!只要1行!!!
```
$.each($('.reverse').children(),function(index,node){$(node).prependTo(parentNode);})
```

转载于:https://www.cnblogs.com/nunn/p/4036586.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值