原生JS实现列表子元素顺序反转的方法分析

本文实例讲述了原生JS实现列表子元素顺序反转的方法分享给大家供大家参考,具体如下:

编写一个函数一个列表里面的所有子元素顺序反转,问题不难但是解决方法却有多种,而且性能大不一样,下面就介绍几种常用的方法

1. 采用直接的DOM操作:

rush:js;"> var ul = document.getElementById('target'); var list = ul.getElementByTagName('li'); var length = list.length; while(length--){ ul.appendchild(ul.childNodes[length]); }

这种方法在子元素数量比较少的时候不会太影响页面性能,但是当子元素数量较大的时候,页面性能会受到很大的影响,因为每一次插入元素都对页面进行直接的DOM操作,因此不太建议这种方法

2. 采用文档碎片fragment方法

= 0; i--){ fragment.appendChild(list[i]); } ul.appendChile(fragment);

采用文档碎片的方法进行操作,整个插入过程只对fragment进行了一次的DOM操作,不管子元素的数量多少,相比第一种方法页面性能会得到很大的提升,实际应用中可以采用这种方法

关于fragment的官方说明文档https://developer.mozilla.org/en-US/docs/Web/API/Document/createDocumentFragment

3. 采用数组的reverse方法

rush:js;"> var ul = document.getElementById('target'); var chil_arr = Array.prototype.slice.call(ul.getElementByTagName('li'),0);//因为getElementByTagName获取到的是伪数组,所以要进行转换 var str = ''; chil_arr.reverse(); for(var i = 0; i < chil_arr.length; i++){ str += chil_arr[i].outerHTML; } ul.innerHTML(str);

这种方法性能也还好。

4. 采用innerHTML方法

= 0; i--){ str += "
  • " + list[i].innerHTML + "
  • "; } ul.innerHTML(str);

    这种方法性能是最好的,建议在实际应用中采用这种方法,提高页面性能

    更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《错误与调试技巧总结》

    希望本文所述对大家JavaScript程序设计有所帮助。

    相关文章

    前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
    前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
    前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
    前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
    前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
    前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...