时间:2021-05-25
本文实例讲述了原生JS实现列表子元素顺序反转的方法。分享给大家供大家参考,具体如下:
编写一个函数将一个列表里面的所有子元素顺序反转,问题不难但是解决的方法却有多种,而且性能大不一样,下面就介绍几种常用的方法:
1. 采用直接的DOM操作:
var ul = document.getElementById('target');var list = ul.getElementByTagName('li');var length = list.length;while(length--){ ul.appendchild(ul.childNodes[length]);}这种方法在子元素数量比较少的时候不会太影响页面性能,但是当子元素数量较大的时候,页面的性能会受到很大的影响,因为每一次插入元素都对页面进行直接的DOM操作,因此不太建议这种方法。
2. 采用文档碎片fragment方法
var ul = document.getElementById('target');var list = ul.getElementByTagName('li');var fragment = document.createDocumentFragment();for(var i = list.length; i >= 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方法
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方法
var ul = document.getElementById('target');var list = ul.getElementByTageName('li');var str = "";for(var i = list.length; i >= 0; i--){ str += "<li>" + list[i].innerHTML + "</li>";}ul.innerHTML(str);这种方法性能是最好的,建议在实际应用中采用这种方法,提高页面的性能。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
//JSArray.reverse将数组元素颠倒顺序 //在JavaScript中,Array对象的reverse()方法将颠倒(反转)数组中元素
下面是原生js实现查找/添加/删除/指定元素的class的方法: 代码如下:window.onload=function(){vargaga=docume
本文实例讲述了基于JavaScript实现的顺序查找算法。分享给大家供大家参考,具体如下:对于查找数据来说,最简单的方法就是从列表的第一个元素开始对列表元素逐个
分析个人用原生JS获取类名元素的代码:复制代码代码如下:getByClassName:function(className,parent){varelem=[]
首先来分析一下轮播图效果的实现原理:1、父元素作为显示窗口,大小固定超出部分隐藏,即设置overflow:hidden;2、子元素存放图片列表用ul,ul固定定