2012-10-10 19 views
5

Se chiamo .hide() su un elemento, sarà possibile jQuery selezionarlo in un normale selettore dom.jQuery seleziona elementi nascosti

Se jQuery seleziona normalmente elementi nascosti, qual è il modo corretto per selezionare solo elementi visibili. Posso usare un selettore CSS, o c'è un modo più valido per farlo?

+0

Questo è uno dei vantaggi di separare la struttura dallo stile. –

+2

Davvero non capisco perché questa domanda è stata chiusa in quanto non costruttiva. Mi sembra che stia facendo una domanda sì/no molto semplice e poi chiedendo un metodo per raggiungere un obiettivo molto specifico. Non capisco perché sarebbe probabile "sollecitare dibattiti, discussioni, sondaggi o discussioni estese". Non sono necessariamente in disaccordo, ma mi piacerebbe solo capire quali criteri questa domanda non ha incontrato. – Isochronous

risposta

3

Sì. La funzione hide memorizza solo il valore corrente della proprietà css di visualizzazione dell'elemento, quindi imposta su none. Quindi i selettori dom non saranno influenzati da esso a meno che non provino ad abbinare gli elementi con un particolare valore di css display.

Verificare che sia here.

Dai uno sguardo allo jQuery hide function documentation.

1

Sì, conterrà gli elementi nascosti.

1

Sì, aggiunge solo un display: nessuno stile per l'elemento ... .remove() d'altro canto non verrà visualizzato nei conteggi. Ma questo completamente si sbarazza di esso, e a meno che non si memorizzi il valore da qualche parte non è recuperabile.

Quello che presumo che tu voglia fare è contare gli oggetti visibili. Vorrei invece fare quanto segue:

$('.element').addClass('hide'); 

var count_of_visible_items = $('.element:not(".hide")').length; 
console.log(count_of_visible_items); 
Problemi correlati