2 回答
TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超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())??//檢測元素是否有子節(jié)點(diǎn)
????{
????var?len=ul.childNodes.length;??//獲得子節(jié)點(diǎn)數(shù)量
????var?arr=[];???//聲明數(shù)組
????for(var?i=0;i<len;i++)???//循環(huán)
????{
??????arr[i]=ul.childNodes[0];???//將子節(jié)點(diǎn)依次添加到數(shù)組中
??????ul.removeChild(ul.childNodes[0]);?//將子節(jié)點(diǎn)依次刪除
????}
????for(var?i=len-1;i>=0;i--)??//倒敘的關(guān)鍵
????{
??????ul.appendChild(arr[i]);??//添加
??????//?樓主應(yīng)該自己分析,不懂的"方法"去看,學(xué)
????}
???}
}
</script>
</body>TA貢獻(xiàn)158條經(jīng)驗(yàn) 獲得超188個贊
script標(biāo)簽放到</body>上面去,不要放它在下面
ui.appendChild(arr[i]); l寫錯成了i, 改成? ul.appendChild(arr[i]);
再說下這段代碼
在button行內(nèi)添加事件 調(diào)用下面封裝的de函數(shù)
函數(shù)里先獲取了 ul 元素,然后判斷 如果 ul 有子元素, 執(zhí)行排序的代碼
聲明 len = ul子元素的個數(shù),循環(huán)用。聲明 arr = []; 用來緩存ul的子元素
根據(jù)len執(zhí)行for循環(huán)遍歷ul所有的子元素, 每次循環(huán) 把當(dāng)前的子元素節(jié)點(diǎn)緩存到數(shù)組arr中,然后從ul中移除當(dāng)前的子元素節(jié)點(diǎn)
第一次循環(huán)完畢后 ul 的子元素全部被移除,arr中為原ul中的子元素的集合
再開始第二個循環(huán),
for (var i = len-1; i >= 0; i--) { ul.appendChild(arr[i]) };
這表示從數(shù)組arr最后一個元素開始遍歷該數(shù)組,即第一次append到ul中的元素是arr中最后一個,也就是原來的ul中的最后一個元素,循環(huán)完也就實(shí)現(xiàn)了倒序。。。
添加回答
舉報
