SORU
3 ŞUBAT 2012, Cuma


Nasıl gerçek zamanlı bir arama gerçekleştirmek ve bir HTML tablo üzerinde filtreleme yapmak için

Ve bir süre için Yığın Taşması arama Googling oldum, ama ben sadece bu sorunu gidermek olamaz.

Standart bir HTML tablosu, meyve içeren var. Bunun gibi

<table>
   <tr>
      <td>Apple</td>
      <td>Green</td>
   </tr>
   <tr>
      <td>Grapes</td>
      <td>Green</td>
   </tr>
   <tr>
      <td>Orange</td>
      <td>Orange</td>
   </tr>
</table>

Bu yukarıda sahip bir kullanıcı olarak tablo arama yapmak istediğim bir metin kutusu. Onlar Gre yazarsanız, örneğin, tablonun satır Portakal, Elma ve Üzüm bırakarak yok olur. Üzerine taşıdılar ve Green Gr yazdıysanız Apple satır, sadece üzüm bırakmak yok. Bu açık ve nettir umarım.

Ve, kullanıcı metin kutusunu sorgu kısmını veya tamamını silin, sorgu eşleşen tüm satırları yeniden etmek isterim.

JQuery tablo satırı kaldırmak için nasıl biliyorum iken, arama yapmak ve satırları seçerek bu temel kaldırma hakkında gitmek hakkında ufak bir fikrim yok. Bunun için basit bir çözüm var mı? Ya da bir eklenti mi?

Eğer herkes doğru yönde bana gelin Eğer gerçekten harika olurdu.

Teşekkür ederim.

CEVAP
3 ŞUBAT 2012, Cuma


Bu örnekler oluşturdum.

indexOf basit arama

var $rows = $('#table tr');
$('#search').keyup(function() {
    var val = $.trim($(this).val()).replace(/  /g, ' ').toLowerCase();

    $rows.show().filter(function() {
        var text = $(this).text().replace(/\s /g, ' ').toLowerCase();
        return !~text.indexOf(val);
    }).hide();
});

Demo: http://jsfiddle.net/7BUmG/2/

Düzenli ifade arama

Daha fazla gelişmiş. Eğer aynı tip apple green green apple çalışacak:

var $rows = $('#table tr');
$('#search').keyup(function() {

    var val = '^(?=.*\\b'   $.trim($(this).val()).split(/\s /).join('\\b)(?=.*\\b')   ').*$',
        reg = RegExp(val, 'i'),
        text;

    $rows.show().filter(function() {
        text = $(this).text().replace(/\s /g, ' ');
        return !reg.test(text);
    }).hide();
});

Demo: 12**

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • metagamers

    metagamers

    13 Mayıs 2006
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011