国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

原生JS實現列表子元素順序反轉的方法分析

2019-11-19 13:34:52
字體:
來源:轉載
供稿:網友

本文實例講述了原生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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永州市| 成安县| 嘉荫县| 吉安县| 宁安市| 富民县| 益阳市| 新建县| 新丰县| 沁源县| 桐城市| 商水县| 都江堰市| 南漳县| 泸溪县| 襄城县| 德格县| 萨嘎县| 呈贡县| 彰武县| 汽车| 新晃| 子长县| 平湖市| 岳池县| 合川市| 西乡县| 伽师县| 永济市| 仪征市| 文登市| 广南县| 恩平市| 调兵山市| 保康县| 饶阳县| 阳朔县| 灵武市| 南阳市| 石狮市| 武陟县|