91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-08 02:55:59 來源:腳本之家 閱讀:192 作者:尋夢丶2015 欄目:web開發

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舒兰市| 昂仁县| 荆门市| 密山市| 利川市| 洛扎县| 云浮市| 浦城县| 南通市| 建昌县| 库尔勒市| 清远市| 峡江县| 安国市| 都兰县| 耒阳市| 阳高县| 广安市| 扎鲁特旗| 哈密市| 卢湾区| 日喀则市| 阳城县| 海阳市| 泗水县| 甘孜县| 萨嘎县| 涪陵区| 宁强县| 顺平县| 广宗县| 芦溪县| 沂南县| 松阳县| 溧水县| 绥芬河市| 卓资县| 股票| 怀化市| 新干县| 清苑县|