Das wievielte Objekt (index)

MsvP@habdichliebhasi

Erfahrenes Mitglied
Hi Leute,

ich stehe gerade einwenig auf dem Schlauch.

Ich bastel derzeit an einem "kleineren" Javascript mittels jQuery. Jetzt habe ich folgende Grundvorraussetzung:

- Ich weiß wieviele DIV Objekte es gibt
- Diese heißen alle gleich (class wie auch id)
- es ist immer eines visible, alle anderen sind invisible

Beispiel:

PHP:
<div class="box" id="large" style="display:none"></div>
<div class="box" id="large" style="display:block"></div>
<div class="box" id="large" style="display:none"></div>

Jetzt muss ich wissen, dass wievielte Objekt "visible" ist.
Sprich ich muss per Javascript (jQuery) erfragen, welches Objekt gerade sichtbar ist (wäre in diesem Fall ja das zweite Objekt, also bei einer Indizierung von allen Divs die 1.)

Wie frage ich das jetzt am Besten ab?


Vielen Dank für eure Hilfe!

Liebe Grüße
Micha
 
Hat in dem Fall CSS Technische-Gründe, und wird deswegen auch nicht per JS verwendet.

Ich spreche nur die Klasse an. Mir ging es mehr darum zu vermitteln, dass ich keine ID mehr freihabe, um damit eine genaue 1, 2, 3 Zuweisung vollziehen zu können.

Ich bräuchte aus diesem Grund eher eine Abfrage wie:

"Zähle die Objekte und sag mir, das wievielte davon visible ist."

Liebe Grüße
Micha
 
Da gibt es keine "CSS-technische Gründe", den ID-Bezeichner im (X)HTML-Dokument mehrmals zu vergeben.

CSS:
#large1,#large2,#large3 { ... }

Ansonsten dient hier der Klassenbezeichner ".box" zum Gruppieren der Elemente.

CSS:
.box { ... }

mfg Maik
 
Da die Kästen aber dynamisch erzeugt werden und ich somit erst beim ausführen des Scripts zählen kann wieviele Kästen es gibt, diese aber alle das Gleiche CSS brauchen, kann ich denen keine unterschiedlichen Namen geben.

Wie soll ich sonst das CSS schreiben? Kann da schlecht dynamisch für jede Box-ID ein neues CSS bauen.

Hast du denn nicht eine Idee, wie ich die Boxen auch ohne Zuweisungs-ID zählen kann?
Ich habe schon rausgefunden, dass er per jQuery mit dem Befehl .index geht. Allerdings weiß ich noch nicht, wie ich ihn in Verbindung mit dem "css:visible" Abfrage, so dass trotzdem alle Kästen gezählt werden, auch die, die nicht visible sind.

Liebe Grüße
Micha
 
Da die Kästen aber dynamisch erzeugt werden und ich somit erst beim ausführen des Scripts zählen kann wieviele Kästen es gibt, diese aber alle das Gleiche CSS brauchen, kann ich denen keine unterschiedlichen Namen geben.

Wie soll ich sonst das CSS schreiben? Kann da schlecht dynamisch für jede Box-ID ein neues CSS bauen.
Siehe hierzu die nachgereichte Ergänzung bzgl. des Klassenbezeichners in meinem letzten Post, die dir dann wohl entgangen ist.

mfg Maik
 
Hast du denn nicht eine Idee, wie ich die Boxen auch ohne Zuweisungs-ID zählen kann?
Ich habe schon rausgefunden, dass er per jQuery mit dem Befehl .index geht. Allerdings weiß ich noch nicht, wie ich ihn in Verbindung mit dem "css:visible" Abfrage, so dass trotzdem alle Kästen gezählt werden, auch die, die nicht visible sind.

@Sven: Da hakt es bei mir gerade einwenig, wie ich die Abfrage gestalten muss.

@Maik: Ok, werde mir das nocheinmal anschauen, mit den IDs. Dennoch würde ich gern wissen, wie ich es ohne hinbekomme, da ich mir sicher bin, dass es einen Weg geben muss und mich es wurmt, dass er mir nicht direkt einfällt.
 
Hast du meine Antwort nicht verstanden?

Alle DIVs besitzen in deinem Code doch die Klasse "box". Fein, und über genau diese kannst du sie alle gemeinsam im CSS formatieren, ohne vorher zu wissen, wieviele von ihnen später im Markup existieren werden.

mfg Maik
 
Doch, das habe ich. Und du hast Recht. Ich bin mir gerade auch nicht sicher, warum ich da mit ID und CLASS gearbeitet habe. Das script habe ich vor einigen Wochen getippt und überarbeite es derzeit. Und werde mir das deswegen auch nochmal anschauen, ob ich auf eine durchnummerierte ID Reihe zurückgreifen kann.

Aber dennoch würde ich gerne eine Lösung für meine Frage haben. Das hat was mit Wissendurst zu tun. Es muss ja möglich sein, per .index die Elemente durchzuzählen und dann herauszulesen, welches von ihnen visible ist und dann die Nummer des Elements auszugeben.

Will das jetzt einfach unabhängig von irgendwelchen IDs und Classes wissen. :-)

Liebe Grüße
Micha
 

Neue Beiträge

Zurück