2017-10-13 83 views
0

我有一张表格,我可以切换行。现在我想在桌上搜索。我的搜索功能工作,但不显示隐藏的行。我怎样才能做到这一点?在这里我的搜索功能。jQuery搜索切换表格行

$(document).ready(function(){ 
 
    $("#search").keyup(function(){ 
 
    var search = $(this).val(); 
 
    $("table tbody tr").hide(); 
 
    $(".header-1").show(); 
 
    $(".header-2").show(); 
 
    $("table tbody tr td:contains("+search+")").each(function(){ 
 
     $(this).closest("tr").show(); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="skills" id="skills" width="100%" cellspacing="0"> 
 
    <tr class="header-1"> 
 
    <th>Skill</th> 
 
    <th colspan="2">Theoretische Kenntnisse</th> 
 
    <th>Praktische Kenntnisse</th> 
 
    <th class="skills_pfl">Zuletzt gepfelgt</th> 
 
    </tr> 
 
    <tr class="header-2"> 
 
    <th></th> 
 
    <th class="skills_ausb">Ausgebildet</th> 
 
    <th class="skills_ausb_jhr">Ausbildungsjahr</th> 
 
    <th></th> 
 
    <th></th> 
 
    </tr> 
 
    <tr id="74" class="skills_kat"> 
 
    <td style="text-align: left;" class="show" 
 
     onclick="$('#body-74').toggle(300); $('#fa-74').toggleClass('fa-caret-right').toggleClass('fa-caret-down');"> 
 
     <i class="fa fa-caret-right" id="fa-74"></i> &nbsp;Anwendungsgebiete 
 
    </td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tbody id="body-74" class="table-body"></tbody> 
 
    <tr id="116" class="skills_kat"> 
 
    <td style="text-align: left;" class="show" 
 
     onclick="$('#body-116').toggle(300); $('#fa-116').toggleClass('fa-caret-right').toggleClass('fa-caret-down');"> 
 
     <i class="fa fa-caret-right" id="fa-116"></i> &nbsp;Application Server 
 
    </td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table>

一些民族不understandt我。搜索逻辑工作正常,但我有行,我可以点击切换。如果我搜索表格,这些行将不会显示。这里有一个截图。

enter image description here

+0

请附上您的HTML代码 –

+0

是你的'$(”头 - 1" 。)'这是一个隐藏的行? –

+1

分享实时演示? – C2486

回答

0

你为什么不把你的逻辑和周围隐藏的那些你不希望看到的?像这样:

$(document).ready(function() { 
 
    var consolidatedArray = $("table tbody tr td").slice(); 
 
    $("#search").keyup(function() { 
 
    
 
    var search = $(this).val(); 
 
    $("table tbody tr").show() 
 
    $(".header-1").show(); 
 
    $(".header-2").show(); 
 
    $("table tbody tr td:not(:contains(" + search + "))").each(function() { 
 
     $(this).closest("tr").hide(); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td>abc</td> 
 
    </tr> 
 
    <tr> 
 
     <td>efg</td> 
 
    </tr> 
 
    <tr> 
 
     <td>xsd</td> 
 
    </tr> 
 
    <tr> 
 
     <td>sdf</td> 
 
    </tr> 
 
    <tr> 
 
     <td>ffs</td> 
 
    </tr> 
 
    <tr> 
 
     <td>abc</td> 
 
    </tr> 
 
    </tbody> 
 
</table> 
 
<input id="search" type="text"/>

+0

请阅读编辑:) – Markus