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
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**
Nasıl dava Vim / küçük harf duyarlı ar...
Nasıl bir WordPress kullanmak yapmadan...
Nasıl belirli bir dize için depodaki G...
Nasıl HTML dikey bir çizgi yapmak için...
Nasıl filtreleme/arama Dinlendirici bi...