posts - 431,  comments - 344,  trackbacks - 0

          <html>
            <head>
              <title>Sort.html</title>
           <script type="text/javascript">
            function convert(sValue, sDataType) {
             switch (sDataType) {
              case "int":
               return parseInt(sValue);
              case "float":
               return parseFloat(sValue);
              case "date":
               return new Date(Date.parse(sValue));
              default:
               return sValue.toString();
             }
            }
           
            function generateCompareTRs(iCol, sDataType) {
             return function compareTRs(oTR1, oTR2) {
              var sValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
              var sValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
              
              //這里就不可以使用localeCompare方法了,因為數字和日期不支持它,也不可以用"==",因為日期是對象。
              if (sValue1 < sValue2) {
               return -1;
              } else if (sValue1 > sValue2) {
               return 1;
              } else {
               return 0;
              }
             }
            }
            
            function sortTable(sTableID, iCol, sDataType) {
             var oTable = document.getElementById(sTableID);
             var oTBody = oTable.tBodies[0];
             var colDataRows = oTBody.rows;
             var aTRs = new Array;
             
             for (var i = 0; i < colDataRows.length; i++) {
              aTRs.push(colDataRows[i]);
             }
             
             if (oTable.sortCol == iCol){
              aTRs.reverse();
             } else {
              aTRs.sort(generateCompareTRs(iCol, sDataType));
             }

             var oFragment = document.createDocumentFragment();
             for (var i = 0; i < aTRs.length; i++) {
              oFragment.appendChild(aTRs[i]);
             }
             
             oTBody.appendChild(oFragment);
             oTable.sortCol = iCol;
            }
           </script>
            </head>
           
            <body>
              This is my HTML page. <br>
              <table border="1" id="tblSort">
               <thead>
                <tr>
                 <th onclick="sortTable('tblSort', 0)" style="cursor:pointer">Last Name</th>
                 <th onclick="sortTable('tblSort', 1)" style="cursor:pointer">First Name</th>
                 <th onclick="sortTable('tblSort', 2, 'date')" style="cursor:pointer">Birthday</th>
                 <th onclick="sortTable('tblSort', 3, 'int')" style="cursor:pointer">Age</th>
                </tr>
               </thead>
               <tbody>
                <tr>
                 <td>Smith</td>
                 <td>John</td>
                 <td>7/12/1978</td>
                 <td>31</td>
                </tr>
                <tr>
                 <td>Johnson</td>
                 <td>Betty</td>
                 <td>10/15/1977</td>
                 <td>32</td>
                </tr>
                <tr>
                 <td>Henderson</td>
                 <td>Nathan</td>
                 <td>02/22/1982</td>
                 <td>27</td>
                </tr>
                <tr>
                 <td>Williams</td>
                 <td>James</td>
                 <td>8/19/1980</td>
                 <td>29</td>
                </tr>
                <tr>
                 <td>Gilliams</td>
                 <td>Michael</td>
                 <td>5/13/1972</td>
                 <td>39</td>
                </tr>
                <tr>
                 <td>Walker</td>
                 <td>Matthew</td>
                 <td>10/19/1981</td>
                 <td>28</td>
                </tr>
               </tbody>
              </table>
            </body>
          </html>

          posted on 2008-01-24 13:08 周銳 閱讀(354) 評論(0)  編輯  收藏 所屬分類: HTMLJavaScript
          主站蜘蛛池模板: 龙海市| 宁武县| 始兴县| 阿拉善左旗| 宜城市| 彰化市| 闵行区| 抚顺县| 自贡市| 涿州市| 韶关市| 芒康县| 哈密市| 枣庄市| 镇原县| 威远县| 吴桥县| 河西区| 西藏| 定结县| 岗巴县| 涟源市| 通辽市| 阿坝| 江门市| 偏关县| 剑阁县| 敦化市| 娱乐| 新乡县| 河东区| 洞头县| 金沙县| 潢川县| 罗甸县| 平泉县| 苏尼特右旗| 普定县| 班戈县| 宜君县| 威信县|