jQuery Alpabetical 在表格、A、B、C 等列表中按名称过滤

标签 jquery html css filter

我有一个工作演示,但仅适用于 ListView ,我需要能够单击顶部的 A、B、C 等列表,然后按表中的联系人姓名进行过滤。

因此,只要您点击 A,它就会显示表格中所有以“A”开头的姓名。

正如我提到的,它适用于 ListView ,但不确定如何让它在表格中工作?

http://jsfiddle.net/37UxT/1/

希望有人能帮忙。它基于来自 http://www.ihwy.com/Labs/jquery-listnav-plugin.aspx 的插件不确定在何处或如何手动执行此操作,因为这对 jQuery 来说还很陌生。

$('ul.list-nav').listnav({         
    includeAll: false,                 
    noMatchText: 'Sorry, nothing matched this filter, please try another letter.', 
        includeAll: true, 
    initLetter: 'n', 
    showCounts: false                
});

谢谢

最佳答案

我相信那里有许多“表格排序器”插件,但这个简短的代码可以实现您正在寻找的东西

脚本

     var alphas = 'abcdefghijklmnopqrstuvwxyz';
     $(document).ready(function () {
        var tmp = '';
        for (var x = 0; x < 26; x++) tmp += '<a href="#">' + alphas[x].toUpperCase() + '</a>&nbsp;&nbsp;';
        $('#table_filter').append(tmp);

        $('#table_filter a').click(function () {

           if ($(this).attr('id') == 'show_all') {
              $('#searchNames tbody tr').css('display', 'table-row');
              $('#message').html('displaying all rows');
              return false;
           }

           var alpha = $(this).html();
           $('#searchNames tbody tr').hide().filter(function () {
              var td = $('td:first', $(this));
              return td.length && td.html() && new RegExp('^' + alpha + '.*$', 'i').test(td.html().toLowerCase());
           }).css('display', 'table-row');
           $('#message').html('displaying rows with "' + alpha + '"');
           return false;
        })
     });

和标记

  <div id="table_filter">
     <a id="show_all" href="#">Show All</a>
  </div>
  <p id="message"></p>
  <table class="table1" id="searchNames" style="width:500px;">
     <thead>
        <tr>
           <th>CONTACT NAME</th>
           <th>col 2</th>
        </tr>
     </thead>
     <tbody>
        <tr>
           <td>ssfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>asdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>apodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>opkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>lkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>nlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>essfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>easdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qapodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>oopkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>dlkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>snlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>vqwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>ssfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>asdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>apodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>opkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>lkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>nlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>essfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>easdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qapodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>oopkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>dlkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>snlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>vqwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>ssfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>asdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>apodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>opkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>lkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>nlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>essfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>easdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qapodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>oopkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>dlkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>snlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>vqwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>ssfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>asdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>apodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>opkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>lkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>nlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qwdsdfsd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>essfjkn jkdsnf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>easdl kln</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>qapodf</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>oopkpokj</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>dlkohasd</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>snlkcn</td>
           <td>Col2</td>
        </tr>
        <tr>
           <td>vqwdsdfsd</td>
           <td>Col2</td>
        </tr>
     </tbody>
  </table>

和 jsfiddle

http://jsfiddle.net/Khq9k/2/

更新

让它根据第 4 个 <td> 进行过滤, 替换

var td = $('td:first', $(this));

var td = $('td:nth-child(4)', $(this));

关于jQuery Alpabetical 在表格、A、B、C 等列表中按名称过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15829910/

相关文章:

jquery - 在 .filter() 之后找到第 n 个 child

jquery - 在 jQuery 中的 2 个类之间切换

html - img 缩放到 div 内的视口(viewport)

ios - IOS 浏览器上的只读日期字段?

javascript - css中图像的正确重叠

css - Ruby on Rails 下拉 <select> 菜单 - 如何设置样式或将类应用于选项?

css - 关于 BS 3 中的 @grid-float-breakpoint 变量

javascript - 从面板中删除选定的项目 -JS

javascript - 结合不同变量的两个 if 语句

html - R Shiny : how to give an inputID to an actionButton created via HTML