練習(xí):表格排序

<ul id="ul1">
   <li>98</li>
   <li>99</li>
   <li>96</li>
   <li>95</li>
   <li>90</li>
 </ul>
 <script type="text/javascript">
 var oUl=document.getElementById("ul1");
 var oLis=oUl.getElementsByTagName("li");
步驟:

1、先把元素集合類數(shù)組轉(zhuǎn)換為數(shù)組:

var ary=utils.listToArray(oLis);`
**2、給數(shù)組進(jìn)行排序:按照每一個li中的內(nèi)容大小進(jìn)行排序**
ary.sort(function(a,b){
      return parseFloat(a.innerHTML)-parseFloat(b.innerHTML);  //ary中存的是li(如<li>98</li>),所以用innerHTML獲取其內(nèi)容
});

3、按照ary中存儲的最新順序依次的把對應(yīng)的li添加到頁面中:

var frg=document.createDocumentFragment();
 for(var i=0;i<ary.length;i++){
      frg.appendChild(ary[i]);
 }
 oUl.appendChild(frg);
 frg=null;  //代碼優(yōu)化:手動釋放堆內(nèi)存

——————————————————————————————————————————————
附加:類數(shù)組轉(zhuǎn)換為數(shù)組函數(shù)函數(shù)(全兼容):

var utils={
      listToArray:function(likeArray){
         var ary=[ ];
         try{              
              ary=Array.prototype.slice.call(likeArray);  
//call把slice中的this換位likeArray(類數(shù)組),(即相當(dāng)于把類數(shù)組轉(zhuǎn)換為數(shù)組,可以調(diào)用數(shù)組的屬性和方法了)。call中只有l(wèi)ikeArray作為this這個參數(shù),沒有其他參數(shù),說明執(zhí)行slice沒有參數(shù)(即執(zhí)行slice();),相當(dāng)于克隆一個一模一樣的數(shù)組
         }
         catch(e){
            for(var i=0;i<likeArray.length;i++){
                 ary[ary.length]=likeArray[i];
            }
         }
         return ary;
     }
}
//其中try-catch,try若報錯,則執(zhí)行catch中的代碼。catch一般都會帶個參數(shù),一般為e。以上listToArray()函數(shù)就兼容所有瀏覽器

DOM映射機制:

頁面中的標(biāo)簽和JS中獲取到的元素對象(元素集合)是緊緊綁定在一起的,頁面中的HTML結(jié)構(gòu)改變了,JS中不需要重新獲取,集合里面的內(nèi)容也會跟著自動改變。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • * 基礎(chǔ)知識 * js的輸出方式 * js的組成 * js的命名規(guī)范 * 數(shù)據(jù)類型 * number數(shù)據(jù)類型 * ...
    web前端ling閱讀 1,209評論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評論 18 399
  • 現(xiàn)在都在說最萌年齡差,我和你的年齡差是九年!我現(xiàn)在特別想出現(xiàn)在你的生活中我沒有經(jīng)歷過的那幾年。從什么時候開...
    水精靈亞男閱讀 300評論 1 0
  • 已經(jīng)不記得是幾年以前了,那時我還沒上高中。 外面大雨傾盆,我滿懷期待的打開了下載了幾十個小時的《教父》電影系列中的...
    Rea1999閱讀 293評論 0 0
  • 劉鑫的問題是她沒有惡意,沒有敵意,但也沒有善意。江歌的問題是充滿善意。 一個善良的人,不是他沒有惡意,而是心存善意...
    托尼郭閱讀 1,216評論 0 1

友情鏈接更多精彩內(nèi)容