Tablo satırlarını bir sütun değerine göre filtrelemeyi öğrenmek istiyorum. Eklentiler hariç tutulursa, bu şeyin nasıl çalışacağını öğrenmek isterim.Tablo satırlarını jquery ile filtrele
cevap
Sorunuz oldukça muğlak olmakla birlikte, genel bir fikir böyle bir şey olurdu: Burada
$("td").filter(function() {
return $(this).text().indexOf("whatever") !== -1;
}).parent().remove();
bir working example bu. Önce tüm tablo hücrelerini seçer, sonra bazı metne göre filtreler ve kalan satırların üst öğesini (tr
olmalıdır) kaldırır.
Tek tek sütunları umursamıyorsanız, tr
öğelerini seçebilir ve parent
numaralı aramayı silebilirsiniz. Bu, text
seçili tr
'un tüm çocukların metinlerini döndüreceği için çalışmaya devam edecektir. yorumların
dayalı
Güncelleme yukarıdaki tamamen DOM eşleşen tablo satırlarını kaldıracaktır. Bunları gizlemek isterseniz, remove
'u hide
ile değiştirebilirsiniz. bu yüzden sadece olanları daha önce gizlenmiş, tüm tr
unsurları seçer ve onları (zaten etkilenmeyecektir görülebilir olanları gösterir
$("tr").show();
: o zaman basitçe böyle bir şey yapabileceğini tekrar satırlar görünür hale isteseydim tekrar görünür hale gelecek).
Tüm tablo filtrelemenin ardındaki temel fikir, tüm satırları gizlemek ve daha sonra, <td>
içeriğinin arama ölçütünün dahil olduğu yerleri göstermektir.
$('tr').filter(":contains('" + searchstring + "')").show();
Ama bunun için jQuery kullanmaya gerek yoktur - bunun için düz bir JS-çözüm kodlu ettik:
jQuery ile sihirli böyle yapılır. here'u bulabilirsiniz.
bu, .hide() ile birlikte çalışacak mı? Mümkünse, filtreyi sıfırlamak istendiğinde tüm tablo satırlarını göstermek/göstermek için iyi bir yol ne olurdu? – mko
@John - Evet, 'hide'ı kullanarak iyi çalışırdı. Düzenlememe bak. –