2015-12-21 43 views
1

我有div裏面的一堆城市。當你找不到你正在尋找的城市時,這是令人沮喪的。搜索一個div和縮小選項

因此,我試圖添加一個搜索欄,以排除與搜索字符串不匹配的城市。

<form> 
    <div class="form-group"> 
    <input type="text" class="form-control" id="exampleInputEmail1" placeholder="quick city search"> 
    </div> 
</form> 
<div id="cities"> 
    <div id="cities"> 
     <a href="http://www.example.com/?city=alingsas" style="font-size: <?php echo mt_rand(5, 40); ?>px">Alingsås</a> 
     <a href="http://www.example.com/?city=borlange" style="font-size: <?php echo mt_rand(5, 40); ?>px">Borlänge</a> 
     <a href="http://www.example.com/?city=boras" style="font-size: <?php echo mt_rand(5, 40); ?>px">Borås</a> 
     <a href="http://www.example.com/?city=eskilstuna" style="font-size: <?php echo mt_rand(5, 40); ?>px">Eskilstuna</a> 
     <a href="http://www.example.com/?city=falun" style="font-size: <?php echo mt_rand(5, 40); ?>px">Falun</a> 
     <a href="http://www.example.com/?city=goteborg" style="font-size: <?php echo mt_rand(5, 40); ?>px">Göteborg</a> 
     <a href="http://www.example.com/?city=gavle" style="font-size: <?php echo mt_rand(5, 40); ?>px">Gävle</a> 
     <a href="http://www.example.com/?city=halmstad" style="font-size: <?php echo mt_rand(5, 40); ?>px">Halmstad</a> 
     <a href="http://www.example.com/?city=helsingborg" style="font-size: <?php echo mt_rand(5, 40); ?>px">Helsingborg</a> 
     <a href="http://www.example.com/?city=hudiksvall" style="font-size: <?php echo mt_rand(5, 40); ?>px">Hudiksvall</a> 
     <a href="http://www.example.com/?city=harnosand" style="font-size: <?php echo mt_rand(5, 40); ?>px">Härnösand</a> 
     <a href="http://www.example.com/?city=jonkoping" style="font-size: <?php echo mt_rand(5, 40); ?>px">Jönköping</a> 
     <a href="http://www.example.com/?city=kalmar" style="font-size: <?php echo mt_rand(5, 40); ?>px">Kalmar</a> 
    </div> 
</div> 

這是在Fiddle的嘗試。

這與一個亮點是參考:http://jsfiddle.net/FranWahl/aSjqT/

我的問題是: 如何搜索一個div,並排除不是「搜索」字符串。

+0

哪裏是在這個問題上的問題嗎? – void

+0

我的意思是你想達到什麼目的? – void

回答

2

在你的提琴做

$("#search").on("keyup", function() { 
 
     var value = $(this).val().toUpperCase(); 
 
     
 
     $("#cities a").each(function(index) {  
 
       $row = $(this);    
 
       var id = $row.text().toUpperCase();   
 
       //All match 
 
       //if (id.indexOf(value) == -1) { 
 
       //For startWith Match 
 
        if (!id.startsWith(value)) { 
 
        $row.hide(); 
 
       } 
 
       else { 
 
        $row.show(); 
 
       } 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
     <div class="form-group"> 
 
     <input type="text" class="form-control" id="search" placeholder="quick city search"> 
 
     </div> 
 
    </form> 
 
    <div> 
 
      <div id="cities"> 
 
       <a href="http://www.example.com/?city=alingsas" style="font-size: <?php echo mt_rand(5, 40); ?>px">Alingsås</a> 
 
       <a href="http://www.example.com/?city=borlange" style="font-size: <?php echo mt_rand(5, 40); ?>px">Borlänge</a> 
 
       <a href="http://www.example.com/?city=boras" style="font-size: <?php echo mt_rand(5, 40); ?>px">Borås</a> 
 
       <a href="http://www.example.com/?city=eskilstuna" style="font-size: <?php echo mt_rand(5, 40); ?>px">Eskilstuna</a> 
 
       <a href="http://www.example.com/?city=falun" style="font-size: <?php echo mt_rand(5, 40); ?>px">Falun</a> 
 
       <a href="http://www.example.com/?city=goteborg" style="font-size: <?php echo mt_rand(5, 40); ?>px">Göteborg</a> 
 
       <a href="http://www.example.com/?city=gavle" style="font-size: <?php echo mt_rand(5, 40); ?>px">Gävle</a> 
 
       <a href="http://www.example.com/?city=halmstad" style="font-size: <?php echo mt_rand(5, 40); ?>px">Halmstad</a> 
 
       <a href="http://www.example.com/?city=helsingborg" style="font-size: <?php echo mt_rand(5, 40); ?>px">Helsingborg</a> 
 
       <a href="http://www.example.com/?city=hudiksvall" style="font-size: <?php echo mt_rand(5, 40); ?>px">Hudiksvall</a> 
 
       <a href="http://www.example.com/?city=harnosand" style="font-size: <?php echo mt_rand(5, 40); ?>px">Härnösand</a> 
 
       <a href="http://www.example.com/?city=jonkoping" style="font-size: <?php echo mt_rand(5, 40); ?>px">Jönköping</a> 
 
       <a href="http://www.example.com/?city=kalmar" style="font-size: <?php echo mt_rand(5, 40); ?>px">Kalmar</a> 
 
    </div>

https://jsfiddle.net/k8rp18qb/2/

+0

謝謝,但似乎作爲第一個字符串是(alingsås在我的小提琴)總是顯示(不被排除)。 – Adam

+0

請檢查更新小提琴https://jsfiddle.net/k8rp18qb/2/ –

+0

謝謝!是否有可能讓腳本從字符串的開頭搜索?如果我輸入'st',我現在將同時得到'Eskilstuna'和'Halmstad'。 (它們都包含'st')。但是,說'斯德哥爾摩'將作爲一個選項存在,只有'斯德哥爾摩'應該顯示。所以,從字符串開頭搜索,這有可能嗎? – Adam

0

這將幫助你很多。

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
    </head> 
    <body> 

    <div data-role="page" id="pageone"> 
     <div data-role="main" class="ui-content"> 
     <form class="ui-filterable"> 
      <input id="myFilter" data-type="search"> 
     </form> 
     <ul data-role="listview" data-filter="true" data-input="#myFilter" data-autodividers="true" data-inset="true"> 
      <li><a href="#">Adele</a></li> 
      <li><a href="#">Agnes</a></li> 
      <li><a href="#">Billy</a></li> 
      <li><a href="#">Bob</a></li> 
      <li><a href="#">Calvin</a></li> 
      <li><a href="#">Christina</a></li> 
      <li><a href="#">Diana</a></li> 
      <li><a href="#">Glen</a></li> 
      <li><a href="#">Ralph</a></li> 
      <li><a href="#">Valarie</a></li> 
     </ul> 
     </div> 
    </div> 

    </body> 
    </html>