2011-01-10 12 views
1

ich heruntergeladen jquery zerlegbare Platte Skript (als Menü verwendet), die ich habe, funktioniert gut, aber ich es mit .NET in Verbindung bin mit und versuchen, eine bestimmte Platte basiert haben auf der Seite, die Sie erweitern sehen zu Es ist Panel, aber ich kann nicht das Ding auswählen, egal alle Kombinationen, die ich ausprobiert habe. Hier ist, was die HTML wie folgt aussieht:Jquery Complex Selector, untergeordnetes Element des übergeordneten Klassennamens toggle?

<div class="collapsibleContainer app ui-widget" title="1990"> 
    <div class="collapsibleContainerTitle app ui-widget-header"> 
     <div>▸1990</div> 
    </div> 
    <div class="collapsibleContainerContent app ui-widget-content" style="display: none; "> 
     Text Stuff 
    </div> 
</div> 

nun auf dieses Skript aus, nachdem ich die anfängliche Sachen laufen, diese Zeile zu schreiben erfolgreich alle Platten wechseln:

$(".collapsibleContainerContent").slideToggle(); 

jedoch natürlich, weil es Ein Vielfaches dieser Panels auf einer Seite möchte nicht, dass sie alle umgestellt werden, sondern nur diejenige, die für die bestimmte Seite relevant ist, die ich gerade betrachte. Ich versuchte es so:

$(".collapsibleContainerTitle.app.ui-widget-header:contains('<%= Decade %>')").parent().slideToggle(); 
$(".collapsibleContainer.app.ui-widget-header[title='<%= Decade %>'] > .collapsibleContainerContent").slideToggle(); 

Unter einer Vielzahl anderer Kombinationen. Ich musste Selektoren nie zuvor verwenden (zumindest für komplex für mich). Wie kann ich? Ich brauche die .collapsibleContainerContent und slideToggle() auszuwählen, dass in der entsprechenden Dekade Behälter ist.

ich bestätigt haben, dass die .net an das Skript übergebene Variable Wesen ist richtig, wenn die Quelle sehen ist das Jahr 1990. So sagen, was mache ich falsch? Vielen Dank.

Edit: Klarstellung, das Jahr ist dynamisch und das ist, was ich meine Daten übereinstimmen muss, so dass ich mindestens mit der Basis beginnen wird wählen Sie entweder den Container nach Attributtitel oder ContainerTitle von: enthält mit dem Jahr , aber ich muss mit der ContainerContent-Auswahl enden, damit ich sie umschalten kann.

Antwort

1
$(".collapsibleContainerTitle.app.ui-widget-header:contains('<%= NoteDecade %>')").parent().children(".collapsibleContainerContent").slideToggle(); 

Hat den Trick gemacht.

1

Sie müssen wie folgt neu schreiben ...

$(".collapsibleContainerTitle .app .ui-widget-header:contains('<%= Decade %>')").parent().slideToggle(); 

..die Räume sind alle wichtigen!

+0

Das ist nicht richtig und sogar auf JQuery eigenen Website: http://api.jquery.com/class-selector/ sie keine Leerzeichen verwenden. – SventoryMang

+0

@ sah302 Aber hat es funktioniert? –