0

我有一个使用 jQuery 选项卡的页面。除了其他内容之外,每个选项卡都包含一个或多个动态生成的 jQuery 手风琴。例子:

<div id="tab1" class="tab">
    <div>
        Some stuff
    </div>
    <div class="accordion">
        I am an accordion
    </div>
</div>
<div id="tab2" class="tab">
    <div class="accordion">
        I am also an accordion
    </div>
    More stuff
    <div class="accordion">
        I am also an accordion
    </div>
</div>

我希望每个选项卡中的第一个手风琴保持打开状态,而其他(如果有的话)折叠起来。我努力了:

$('.tab .accordion:first')

它只选择页面上的第一个手风琴(显然)。我也试过:

$('.tab .accordion:first-child')

这会选择 tab2 中的第一个手风琴,但不会选择 tab1 中的手风琴,因为它上面有一些东西。我也试过:

$('.tab > .accordion').filter(':first-child')
$('.tab').children('.accordion:first-child')

以及我能想到的几乎所有选择器组合。此时我的大脑已经炸了。在您向我指出一个重复的问题之前,这些都不是完全相同的问题:

JQuery Tab each Selected tab first text box focus

jquery选择具有类的父类的第一个孩子

每个父级上每个第一个元素的 jQuery 选择器

jQuery选择具有特定属性的第一个孩子

就我而言,不同之处在于我几乎无法控制这些选项卡中显示的内容。

4

2 回答 2

1

我建议:

$('.tab').find('.accordion:first');

JS Fiddle 概念验证

于 2013-02-16T00:19:06.187 回答
0

尝试这个:

 $('.accordion:first', '.tab')
于 2013-02-16T00:19:24.103 回答