2012-03-30 8 views
1

Ich stieß auf ein Problem bei der Suche nach dem nächsten Geschwister eines Elternteils, der ein bestimmtes Kind (eine Baumebene) enthielt. Ich fand die Antwort schließlich durch Versuch und Irrtum, aber ich suchte hier nach, bevor ich mit dem Testen fortfuhr. Ich dachte, ich würde meine Erkenntnisse teilen und sehen, ob jemand einen einfacheren Weg hat, um zu tun, was ich tue.Suchen Sie ein bestimmtes Kind der vorherigen Geschwister der Eltern, wenn Geschwister dynamisch sind

Im Wesentlichen benutze ich jQuery 1.7 (späteste zum 30.03.2012) und musste einen Titel finden, der vorher für eine Überschrift "fortfahren" in der folgenden Reihe angezeigt wurde. Hier ist, was ich kam mit:

(($(this).parent().prevAll()).children('h2')).first().html(); 

ich einfach zugewiesen dies auf eine Variable und verwenden es einen neuen „continue“ Titel in der nächsten Zeile zu erstellen.

Irgendwelche Vorschläge für saubereren Code? Kann dies einfacher oder effizienter gemacht werden?

EDIT:

Hier ist das HTML wie gewünscht:

<div class="container"> 
    <div class="subbox"> 
     <h2>Title1</h2> 
     <div class="itembox">...some content here...</div> 
    </div> 
    <div class="subbox"><div class="itembox">...some content here...</div></div> 
</div> 

Wie Sie sehen, es ist einfach eine Reihe von Unterkästen mit dem ersten in dem Satz ein H2 haben, aber in meinem Fall, in dem ich mit 4+ Sets gearbeitet habe und den Titel des ersten Items im Set bekommen musste (nicht unbedingt der Titel des ersten Sets).

+1

können Sie buchen den HTML-Code für diese? – Joseph

+0

@Joseph bearbeitet, um den HTML-Code anzuzeigen. – Lazerblade

Antwort

1

nicht zu 100% sicher, ob dies funktionieren wird, da ich es nicht getestet haben, aber Sie können den Code vereinfachen, wenn Sie so etwas wie haben würde:

($(this).parent().prevAll()).children("h2:first").html(); 
+0

Ich habe überlegt, eine Pseudoklasse zu benutzen, aber gibt es dadurch einen Leistungsschub? Ich würde denken, dass die Pseudoklasse langsamer sein würde, wie viele andere zuvor betont haben. – Lazerblade

Verwandte Themen