2009-09-02 14 views
19

Ho un numero di tabelle, che hanno tabelle nidificate. Io uso jQuery per nascondere alcune celle della tabella poiché un numero è vuoto o il contenuto è irrilevante.jQuery Selettori parziali

Io uso jQuery per nascondere tutti i TD e poi jQuery per mostrarli, ad esempio, se contengono uno <P>.

Sfortunatamente alcuni TD non contengono nulla ma devono ancora essere mostrati. La classe del TD sono dati è dinamico in modo Non sarò in grado di codificare per tutti loro (assennatamente) però lo fanno a finire 'Node'

mi chiedevo se la sua possibilità di fare qualcosa di simile ...

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

Un po 'unreleated, ma che cosa fa esattamente la (funzione '$() {... }); 'bit significa? Qual è la differenza tra questo e basta scrivere i contenuti? Ha a che fare con la portata? – Eric

+0

Sarà eseguito al caricamento –

+0

Quindi una scorciatoia per '$ (document) .ready()', o '$ (window) .load()'? – Eric

risposta

38

Questo selezionerà qualsiasi tds con Nodeda qualche parte nel nome della classe.

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

In questo modo selezionare qualsiasi tds con Nodealla fine della loro nome della classe.

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

Tenete a mente che .show() fa più o meno la stessa cosa di .css('display','inline');

+1

Solo una nota: ho avuto qualche problema con la versione $ = in Firefox di recente. Se hai lo stesso problema considerando la progettazione delle tue lezioni in modo un po 'diverso. Ricorda, non sei limitato a una classe per elemento. – krdluzni

+2

Che mi ricorda, ''td [class $ = Node]'' will * not * corrisponde a '', poiché il testo della classe non termina in 'node' – Eric

+0

+1 per _show() _ commento. – NVRAM

3

Il selettore [attribute$="value"] vi permetterà di abbinare gli attributi che terminano con un particolare valore. Si noti che l'utilizzo di show() invece di modificare direttamente il CSS manterrà le caratteristiche di visualizzazione dell'elemento che si sta rivelando. Se davvero si vuole costringerli a visualizzare in linea, è possibile tornare indietro al metodo CSS con display: inline

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