亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

倒序排序子元素

倒序排序子元素

qq_小盛開_0 2016-10-10 19:36:15
<body style="text-align:center"><ul>? ? <li>1</li>? ? <li>2</li>? ? <li>3</li>? ? <li>4</li></ul><br /><input type="button" value="倒序排子元素" onclick="de()" /></body><script type="text/javascript">? ? ? ? function de(){ var ul=document.getElementsByTagName("Ul")[0]; if(ul.hasChildNodes()) { var len=ul.childNodes.length; var arr=[]; for(var i=0;i<len;i++) { arr[i]=ul.childNodes[0]; ul.removeChild(ul.childNodes[0]); } for(var i=len-1;i>=0;i--) { ui.appendChild(arr[i]); } } }</script>誰能幫我解釋一下,看不懂了
查看完整描述

2 回答

已采納
?
BCS

TA貢獻8條經驗 獲得超0個贊

<body?style="text-align:center">
<ul>
????<li>1</li>
????<li>2</li>
????<li>3</li>
????<li>4</li>
</ul>
<br?/>
<input?type="button"?value="倒序排子元素"?onclick="de()"?/>
</body>
<script?type="text/javascript">
function?de(){
??var?ul=document.getElementsByTagName("Ul")[0];??
??if(ul.hasChildNodes())??//檢測元素是否有子節點
????{
????var?len=ul.childNodes.length;??//獲得子節點數量
????var?arr=[];???//聲明數組
????for(var?i=0;i<len;i++)???//循環
????{
??????arr[i]=ul.childNodes[0];???//將子節點依次添加到數組中
??????ul.removeChild(ul.childNodes[0]);?//將子節點依次刪除
????}
????for(var?i=len-1;i>=0;i--)??//倒敘的關鍵
????{
??????ul.appendChild(arr[i]);??//添加
??????//?樓主應該自己分析,不懂的"方法"去看,學
????}
???}
}
</script>
</body>


查看完整回答
反對 回復 2016-10-11
?
千秋此意

TA貢獻158條經驗 獲得超188個贊

script標簽放到</body>上面去,不要放它在下面

ui.appendChild(arr[i]); l寫錯成了i, 改成? ul.appendChild(arr[i]);

再說下這段代碼

在button行內添加事件 調用下面封裝的de函數

函數里先獲取了 ul 元素,然后判斷 如果 ul 有子元素, 執行排序的代碼

聲明 len = ul子元素的個數,循環用。聲明 arr = []; 用來緩存ul的子元素

根據len執行for循環遍歷ul所有的子元素, 每次循環 把當前的子元素節點緩存到數組arr中,然后從ul中移除當前的子元素節點

第一次循環完畢后 ul 的子元素全部被移除,arr中為原ul中的子元素的集合

再開始第二個循環,

for (var i = len-1; i >= 0; i--) { ul.appendChild(arr[i]) };

這表示從數組arr最后一個元素開始遍歷該數組,即第一次append到ul中的元素是arr中最后一個,也就是原來的ul中的最后一個元素,循環完也就實現了倒序。。。



查看完整回答
反對 回復 2016-10-10
  • 2 回答
  • 0 關注
  • 1529 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號