云自無(wú)心水自閑

          天平山上白云泉,云自無(wú)心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          prototype版的table filter

          Posted on 2010-07-28 11:02 云自無(wú)心水自閑 閱讀(1979) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 心得體會(huì)JQueryTapestry

          jquery有一個(gè)很方便的插件UI Table Filter可以根據(jù)輸入的內(nèi)容隱藏顯示表格中相應(yīng)的數(shù)據(jù)行。
          因?yàn)槟壳笆褂玫膖apestry捆綁的是prototype,所以就自己寫(xiě)了一個(gè)類(lèi)似的插件。

          <html>
          <head>
          <script src="prototype-1.6.0.2.js" type="text/javascript"></script>
          <script language="javaScript">
           Event.observe(window, 'load', function() {
            Event.observe('filter', 'keyup', filterTable);
           });
           function filterTable() {
            var filterCaseElement = document.getElementById('filterCase');
            var caseSensitive = filterCaseElement.checked;
            
            $$('tr').each(function(trElement, ind) {
             var val = $('filter').value;
             
             if ( ! caseSensitive ) {
              val = val.toLowerCase();
             }
                 
             trElement.childElements().each(function(tdElememt) {
               var tdText = tdElement.innerText;
              if ( ! caseSensitive ) {
               tdText = tdText.toLowerCase();
              }
              if (tdText.include(val)) {
               trElement.show();
              } else if ( ind > 0 ) {
               trElement.hide();
              }
             });
            });
           }
          </script>

          </head>

           <body>
            filter: <input type="text" id="filter" name="filter"/> <input type="checkbox" id="filterCase" onchange="javaScript:filterTable();"/> Case-Sensitive
            <table border="1">
             <thead>
              <tr>
               <th>name</th>
               <th>column1</th>
               <th>column2</th>
               <th>column3</th>
               <th>column4</th>
               <th>column5</th>
               <th>column6</th>
              </tr>
             </thead>
             <tr>
              <td>TEST</td>
              <td>00150002331</td>
              <td>238156</td>
              <td>075</td>
              <td>001</td>
              <td>172.16.14.20</td>
              <td>1-1-05</td>
             </tr>
             <tr>
              <td>TEST-2</td>
              <td>00150002332</td>
              <td>238157</td>
              <td>075</td>
              <td>002</td>
              <td>172.16.14.21</td>
              <td>1-1-05</td>
             </tr>
             <tr>
              <td>TEST</td>
              <td>00150002333</td>
              <td>238158</td>
              <td>075</td>
              <td>003</td>
              <td>172.16.14.23</td>
              <td>1-1-05</td>
             </tr>
             <tr>
              <td>TEST</td>
              <td>00150002341</td>
              <td>238159</td>
              <td>075</td>
              <td>004</td>
              <td>172.16.14.24</td>
              <td>1-1-05</td>
             </tr>
             <tr>
              <td>TEST</td>
              <td>00150002339</td>
              <td>238186</td>
              <td>075</td>
              <td>006</td>
              <td>172.16.14.26</td>
              <td>1-1-06</td>
             </tr>
            </table>
           </body>
            </html>

          如果頁(yè)面中多個(gè)表格,而只需要對(duì)其中的一個(gè)表格的數(shù)據(jù)進(jìn)行過(guò)濾的話,簡(jiǎn)單地把其中:$$('tr').each(function(ele, index) 改成 $$('#tableId, tr').each(function(ele, index) 就行了,其中的tableId就是表格的id


          評(píng)論

          # re: prototype版的table filter  回復(fù)  更多評(píng)論   

          2010-07-28 12:05 by usherlight
          大家一起互相學(xué)習(xí)是最有效的方法
          主站蜘蛛池模板: 吉隆县| 沙洋县| 阿鲁科尔沁旗| 石门县| 琼海市| 越西县| 滁州市| 文化| 建始县| 特克斯县| 鲁山县| 迁西县| 邯郸县| 石林| 瓦房店市| 姜堰市| 长宁区| 诸城市| 盐亭县| 长岛县| 龙泉市| 营口市| 成安县| 民权县| 萝北县| 靖远县| 武邑县| 巫溪县| 毕节市| 固镇县| 咸丰县| 哈密市| 休宁县| 织金县| 奎屯市| 昆山市| 广水市| 宣恩县| 大渡口区| 苗栗市| 宣武区|