Chciałbym wiedzieć, jak filtrować wiersze tabeli na podstawie wartości kolumny. Wtyczki wykluczone, chciałbym dowiedzieć się, jak sprawić, aby to coś działało.Wiersze tabeli filtrów z jquery
Odpowiedz
Twoje pytanie jest dość niejasne, ale ogólna idea byłoby coś takiego:
$("td").filter(function() {
return $(this).text().indexOf("whatever") !== -1;
}).parent().remove();
Oto working example. Najpierw wybiera wszystkie komórki tabeli, a następnie filtruje je w oparciu o jakiś tekst i usuwa rodzica (który powinien być tr
) z pozostałych wierszy.
Jeśli nie interesują Cię poszczególne kolumny, możesz wybrać elementy tr
i usunąć połączenie z numerem parent
. To nadal będzie działać, ponieważ text
zwróci tekst wszystkich dzieci z wybranego tr
.
Aktualizacja na podstawie uwag
Powyższy usunie wiersze z tabeli dopasowanie DOM całkowicie. Jeśli chcesz je po prostu ukryć, możesz zastąpić remove
przez hide
. Jeśli następnie chciał uczynić wiersze widoczne ponownie można po prostu zrobić coś takiego:
$("tr").show();
który wybiera wszystkie tr
elementy i pokazuje je (te, które są już widoczne nie zostaną naruszone, więc tylko te, wcześniej ukryte staną się znowu widoczne).
Podstawową ideą wszystkich filtrów tabel jest ukrycie wszystkich wierszy, a następnie pokazanie tych, w których zawartość pliku <td>
zawiera łańcuch wyszukiwania.
z jQuery magia odbywa się to tak:
$('tr').filter(":contains('" + searchstring + "')").show();
Ale nie ma potrzeby korzystania z jQuery do tego - mam zakodowane zwykły JS-rozwiązania. Możesz go znaleźć here.
będzie to również działać z .hide()? w przypadku, gdy jest to możliwe, jaki byłby dobry sposób pokazania/pokazania wszystkich wierszy tabeli na wypadek, gdy chcę zresetować filtr? – mko
@John - Tak, użycie 'hide' będzie działało dobrze. Zobacz moją edycję. –