Jquery Complex Selector,匹配类名称的父级的子项切换?

时间:2011-01-10 22:52:46

标签: .net jquery jquery-selectors parent-child slidetoggle

我下载了一个jquery可折叠面板脚本(用作菜单),我已经工作正常,但是我将它与.NET结合使用并尝试根据您正在查看的页面设置某个面板扩展它的面板,但无论我尝试过的所有组合,我似乎都无法选择它。这是HTML的样子:

<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>

现在,在我运行初始内容之后,编写此行将成功切换所有面板:

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

然而,当然因为页面上有这些面板的倍数,我不希望它们全部切换,只是与我正在查看的特定页面相关的那个。我试过这样:

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

在众多其他组合中。我之前从未使用过这种复杂的选择器(至少对于复杂的我来说)。我能怎么做?我需要在适当的十进制容器中选择.collapsibleContainerContent和slideToggle()它。

我已经确认传递给脚本的.net变量是正确的,当查看它确实说1990年的源时。那么我做错了什么?感谢。

编辑:澄清,这一年是动态的,这是我必须匹配我的数据,所以我需要至少从基础选择容器的属性标题或容器标题开始:包含年份,但我需要以ContainerContent选择结束,以便我可以切换它。

2 个答案:

答案 0 :(得分:1)

你需要像这样重写......

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

..空间非常重要!

答案 1 :(得分:1)

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

诀窍。