jQuery,表上的筛选器

jQuery,表上的筛选器,jquery,select,filter,Jquery,Select,Filter,我有一个问题,我使用了一个jquery插件(表上的过滤器) 这是URL: 但我有一点不同的情况: 我使用的是(文本框)(dropdawn菜单) 如果可能的话,请帮助我 感谢您的方案,该插件可能有点过头了。使用下面的jQuery代码段可以达到预期效果: $(".filter_tb").change(function() { $(".food_planner tbody tr td:nth-child(2)").each(function () { if ($(this).t

我有一个问题,我使用了一个jquery插件(表上的过滤器)

这是URL:

但我有一点不同的情况:

我使用的是(文本框)(dropdawn菜单)

如果可能的话,请帮助我


感谢您的方案,该插件可能有点过头了。使用下面的jQuery代码段可以达到预期效果:

$(".filter_tb").change(function() {
    $(".food_planner tbody tr td:nth-child(2)").each(function () {
        if ($(this).text() != this.value) {
            $(this).parent().hide();
        } else {
            $(this).parent().show(); 
        }
    });
});
如果您想使用该插件,可以通过修改以下行使其工作:

第26行:
var words=phrase.toLowerCase().split(“”)
to
var words=phrase.toLowerCase()


第87行:
if(text.indexOf(words[i])=-1)返回false
to
if(text!=words[i])返回false

对于您的场景,该插件可能有点过头了。使用下面的jQuery代码段可以达到预期效果:

$(".filter_tb").change(function() {
    $(".food_planner tbody tr td:nth-child(2)").each(function () {
        if ($(this).text() != this.value) {
            $(this).parent().hide();
        } else {
            $(this).parent().show(); 
        }
    });
});
如果您想使用该插件,可以通过修改以下行使其工作:

第26行:
var words=phrase.toLowerCase().split(“”)
to
var words=phrase.toLowerCase()


第87行:
if(text.indexOf(words[i])=-1)返回false
to
if(text!=words[i])返回false

因此,如果您想简单地进行精确匹配,则过滤器可能有点过了头,但这里添加了一个额外的函数来实现这一点:

jQuery.uiTableFilter.is_word = function( str, words, caseSensitive )
{
    var text = caseSensitive ? str : str.toLowerCase();
    if(text == words) return true;
    return false;
}
以下是我用于测试的完整代码:

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript" src="./tablefilter.js"></script>
        <script type="text/javascript"> 
            $(document).ready(function()
            {                
              var theTable = $('table.RegulatoryFilingsTable');
              $(".filter_tb").change(function() {
                $.uiTableFilter( theTable, this.value );
              });
            });
        </script>
    </head>
    <body>
         <select class="filter_tb">
            <option value="">All</option>
            <option value="6-K">6-K</option>
            <option value="20-F">20-F</option>
            <option value="SC 13G/A">SC 13G/A</option>
            <option value="SC 13G">SC 13G</option>
            <option value="F-10/A">F-10/A</option>
            <option value="F-X">F-X</option>
            <option value="F-10">F-10</option>
        </select>

        <br/><br/>

        <table class="RegulatoryFilingsTable">
            <thead><tr><th colspan="2">Your List</th><tr></thead>
            <tbody>
                <tr><td>6-K</td></tr>
                <tr><td>20-F</td></tr>
                <tr><td>SC 13G/A</td></tr>
                <tr><td>SC 13G</td></tr>
                <tr><td>F-10/A</td></tr>
                <tr><td>F-X</td></tr>
                <tr><td>F-10</td></tr>
            </tbody>
        </table>
   </body>
</html>

因此,如果您想简单地进行精确匹配,则过滤器可能有点过分,但这里添加了一个额外的函数来实现这一点:

jQuery.uiTableFilter.is_word = function( str, words, caseSensitive )
{
    var text = caseSensitive ? str : str.toLowerCase();
    if(text == words) return true;
    return false;
}
以下是我用于测试的完整代码:

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript" src="./tablefilter.js"></script>
        <script type="text/javascript"> 
            $(document).ready(function()
            {                
              var theTable = $('table.RegulatoryFilingsTable');
              $(".filter_tb").change(function() {
                $.uiTableFilter( theTable, this.value );
              });
            });
        </script>
    </head>
    <body>
         <select class="filter_tb">
            <option value="">All</option>
            <option value="6-K">6-K</option>
            <option value="20-F">20-F</option>
            <option value="SC 13G/A">SC 13G/A</option>
            <option value="SC 13G">SC 13G</option>
            <option value="F-10/A">F-10/A</option>
            <option value="F-X">F-X</option>
            <option value="F-10">F-10</option>
        </select>

        <br/><br/>

        <table class="RegulatoryFilingsTable">
            <thead><tr><th colspan="2">Your List</th><tr></thead>
            <tbody>
                <tr><td>6-K</td></tr>
                <tr><td>20-F</td></tr>
                <tr><td>SC 13G/A</td></tr>
                <tr><td>SC 13G</td></tr>
                <tr><td>F-10/A</td></tr>
                <tr><td>F-X</td></tr>
                <tr><td>F-10</td></tr>
            </tbody>
        </table>
   </body>
</html>

因此,您希望它完全匹配,而不是根据条目可能包含的文本进行筛选。因此,您希望它完全匹配,而不是根据条目可能包含的文本进行筛选。脚本中有问题,它隐藏了所有行,而不仅仅是父行脚本中有问题,它隐藏了所有行,而不仅仅是父行