JavaScript 調整li元素上下順序
分享一段程式碼例項,他實現了點選按鈕來調整li元素上下順序的功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> .box { width: 500px; margin: 0 auto; padding: 0; } ul, li { margin: 0; padding: 0; list-style: none; } .box ul li { height: 30px; line-height: 30px; background: #eee; margin-top: 10px; } .box ul li em { font-style: normal; width: 370px; display: inline-block; } .box ul li a { padding: 0 10px; } </style> <script> window.onload = function () { var oUl = document.getElementsByTagName("ul")[0]; var oBtn = document.getElementsByTagName("a"); for (var index = 0; index < oBtn.length; index++) { if (index % 2) { oBtn[index].onclick = function () { var oPar = this.parentNode; if (oPar == oUl.children[oUl.children.length - 1]) { alert('到底了,不能再點了!'); return false; } var oNext = oPar.nextElementSibling || oPar.nextSibling; var oNext2 = oNext.nextElementSibling || oNext.nextSibling; oUl.insertBefore(oPar, oNext2) } } else { oBtn[index].onclick = function () { var oPar = this.parentNode; if (oPar == oUl.children[0]) { alert('到頂了,不能再點了!'); return false; } var oPvr = oPar.previousElementSibling || oPar.previousSibling; oUl.insertBefore(oPar, oPvr); } } } } </script> </head> <body> <div class="box" id="box"> <ul> <li><a href="javascript:;">上移</a><em>螞蟻部落歡迎您</em><a href="javascript:;">下移</a></li> <li><a href="javascript:;">上移</a><em>本站的url地址是www.softwhy.com</em><a href="javascript:;">下移</a></li> <li><a href="javascript:;">上移</a><em>只有努力才會有美好的未來</em><a href="javascript:;">下移</a></li> <li><a href="javascript:;">上移</a><em>分享和互助才能推動個人的進步</em><a href="javascript:;">下移</a></li> <li><a href="javascript:;">上移</a><em>這是一個簡單的效果</em><a href="javascript:;">下移</a></li> </ul> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var oUl = document.getElementsByTagName("ul")[0],獲取集合中的第一個ul元素物件。
(3).var oBtn = document.getElementsByTagName("a"),獲取連結a元素集合。
(4).for (var index = 0; index < oBtn.length; index++) {},遍歷每一個連結a元素。
(5).if (index % 2) ,如果索引值為奇數,也就是右側的連結。
(6).oBtn[index].onclick = function () {},為連結a元素註冊click事件處理函式。
(7).var oPar = this.parentNode,獲取當前連結a元素的父元素,也就是所在的li元素。
(8).if (oPar == oUl.children[oUl.children.length - 1]) {
alert('到底了,不能再點了!');
return false;
},如果當前所在的li元素的索引值等於oUl.children.length - 1,也就說明到底了。
(9).var oNext = oPar.nextElementSibling || oPar.nextSibling,獲取oPar的下一個節點,如果支援nextElementSibling則獲取元素節點,否則使用nextSibling獲取節點(這時候可能是空白或者元素節點)。
(10).var oNext2 = oNext.nextElementSibling || oNext.nextSibling,和上面是一樣的道理。
(11).oUl.insertBefore(oPar, oNext2),將opar元素插入到它後面節點緊鄰的節點前面,如果有節點1,2,3,那麼就是將1節點插入到2節點後面的節點3的前面,也就是插入到2和3之間。
二.相關閱讀:
(1).getElementsByTagName()參閱document.getElementsByTagName()一章節。
(2).parentNode參閱JavaScript parentNode一章節。
(3).children參閱JavaScript children一章節。
(4).nextElementSibling參閱JavaScript nextElementSibling一章節。
(5).nextSibling參閱JavaScript nextSibling一章節。
(6).previousSibling參閱JavaScript previousSibling一章節。
(7).previousElementSibling參閱JavaScript previousElementSibling一章節。
(8).insertBefore()參閱JavaScript insertBefore()一章節。
相關文章
- jQuery調整li元素順序jQuery
- jQuery調整li元素順序程式碼例項jQuery
- JavaScript調整option順序JavaScript
- JavaScript li元素的順序隨機打亂JavaScript隨機
- 調整陣列元素順序演算法陣列演算法
- AIX磁碟順序調整AI
- Git調整commit之間順序GitMIT
- 【劍指offer】調整陣列順序陣列
- jQuery實現的新聞列表上下移動調整順序程式碼例項jQuery
- JavaScript 拖動調整元素尺寸JavaScript
- JavaScript 插入新li元素JavaScript
- JavaScript拖動調整元素的尺寸JavaScript
- JavaScript動態新增li元素JavaScript
- JavaScript方向鍵調整div元素的位置JavaScript
- javascript獲取元素的順序程式碼例項JavaScript
- JavaScript 刪除指定的li元素JavaScript
- Win10怎麼調整輸入法的順序?Win10
- win10硬碟順序調整怎麼設定 win10如何改變硬碟順序Win10硬碟
- CSS 元素層疊順序CSS
- JavaScript 獲取第n個li元素JavaScript
- JavaScript獲取li元素的下標JavaScript
- 使用@AutoConfigureBefore調整配置順序竟沒生效?
- win10系統怎麼調整輸入法順序Win10
- javascript載入順序JavaScript
- 【JavaScript】JS引擎中執行上下文如何順序執行程式碼JavaScriptJS行程
- javascript顛倒陣列元素順序簡單程式碼例項JavaScript陣列
- ecshop如何調整商品屬性篩選項的顯示順序?
- Linux核心驅動程式初始化順序的調整(轉)Linux
- css如何實現文字在li元素中上下垂直居中CSS
- JavaScript元素上下彈性運動JavaScript
- JavaScript執行順序分析JavaScript
- JavaScript的執行順序JavaScript
- css元素層疊順序詳解CSS
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- [原創]雙顯示器主屏設定及左右順序調整
- 使用 Python 旋轉PDF頁面、或調整PDF頁面順序Python
- JavaScript 獲取倒數第二個li元素JavaScript
- JavaScript獲取當前li元素的索引位置JavaScript索引