2009-09-02 13 views
19

Mam wiele tabel, które mają tabele zagnieżdżone. Używam jQuery, aby ukryć niektóre komórki tabeli, ponieważ liczba jest pusta lub zawartość nie ma znaczenia.selektory części jQuery

Używam jQuery, aby ukryć wszystkie TD, a następnie jQuery, aby pokazać je, na przykład, jeśli zawierają one <P>.

Niestety niektóre TD nie zawierają niczego, ale nadal muszą być pokazane. Klasa TD na podane jest dynamiczna, więc przyzwyczajenie będę mógł kodować nimi wszystkimi (ROZWAGĄ) jednak robią wszystko skończy „Węzeł”

Zastanawiałem się, jeśli jego możliwości aby zrobić coś takiego ...

$(function() { 
    $('TR .*Node').css('display','inline'); 
}); 
+1

Trochę unreleated, ale co dokładnie robi '$ (function() {... }); 'bit oznacza? Jaka jest różnica między tym a właśnie pisaniem treści? Czy ma to związek z zasięgiem? – Eric

+0

Zostanie wykonany na obciążeniu –

+0

Skrót do '$ (document) .ready()' lub '$ (window) .load()'? – Eric

Odpowiedz

38

Spowoduje to wybranie dowolnego tds z Nodegdzieś w ich nazwie klasy.

$('td[class*=Node]').css('display','inline'); 

To będzie wybrać dowolny TDS z Nodena koniec ich nazwy klasy.

$('td[class$=Node]').css('display','inline'); 

Należy pamiętać, że .show() robi mniej więcej to samo, co .css('display','inline');

+1

Po prostu notka: Ostatnio miałem problemy z wersją $ = w Firefoksie. Jeśli masz ten sam problem, biorąc pod uwagę projektowanie zajęć nieco inaczej. Pamiętaj, że nie jesteś ograniczony do jednej klasy na element. – krdluzni

+2

Co przypomina mi: 'td [class $ = Node]' 'będzie * nie * pasuje do' ', ponieważ tekst klasy nie kończy się na' węźle' – Eric

+0

+1 dla _show()_ komentarz. – NVRAM

3

Selektor [attribute$="value"] pozwoli dopasować atrybuty, które kończą się określonej wartości. Zauważ, że użycie show() zamiast bezpośredniej zmiany CSS zachowuje charakterystykę wyświetlania odkrywanego elementu. Jeśli naprawdę chcesz, aby zmusić je do wyświetlania inline, można przywrócić go z powrotem do metody css z display: inline

$('td[class$="Node"]').show(); 
2
$(function() { 
    $('td[class*=Node]').css('display','inline'); 
}); 
Powiązane problemy