2017-10-13 32 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