Wenn ich .hide() für ein Element aufrufe, wird / kann jQuery es in einem normalen Dom-Selektor auswählen.

Wenn jQuery normalerweise versteckte Elemente auswählt, wie können nur sichtbare Elemente ausgewählt werden? Kann ich einen CSS-Selektor verwenden oder gibt es eine gültigere Möglichkeit, dies zu tun?

7
OneChillDude 10 Okt. 2012 im 08:49

3 Antworten

Beste Antwort

Ja. Die Funktion hide speichert nur den aktuellen Wert der Anzeige-CSS-Eigenschaft Ihres Elements und setzt ihn dann auf none. Daher sind die Dom-Selektoren davon nicht betroffen, es sei denn, sie versuchen, Elemente mit einem bestimmten display CSS-Wert abzugleichen.

Überprüfen Sie es hier.

Schauen Sie sich die jQuery hide - Funktionsdokumentation an.

4
TonioElGringo 10 Okt. 2012 im 04:59

Ja, es werden versteckte Elemente gezählt.

1
blockhead 10 Okt. 2012 im 04:50

Ja, es wird nur eine Anzeige hinzugefügt: Kein Stil zum Element ... .remove () wird dagegen nicht in der Anzahl angezeigt. Damit wird es jedoch vollständig beseitigt, und wenn Sie den Wert nicht irgendwo speichern, kann er nicht abgerufen werden.

Ich gehe davon aus, dass Sie die sichtbaren Elemente zählen möchten. Ich würde stattdessen Folgendes tun:

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

var count_of_visible_items = $('.element:not(".hide")').length;
console.log(count_of_visible_items);
1
Brian Noah 10 Okt. 2012 im 05:24