我有一个HTML文档,其布局类似于:
<div id="main">
<section class="page1 active">...</section>
<section class="page2">...</section>
<section class="page3">...</section>
...
</div>
每个部分的'pagex'类是固定的,不会改变,而'active'类是由jQuery代码的这部分在一个完全不同的脚本中应用和删除的:
$('a, section').removeClass('active');
$('a[data-index="'+activePage+'"], section[data-index="'+activePage+'"]').addClass('active');
}
activePage
是不相关的变量。由于每个部分占据视口的100%,因此用户只能看到具有“活动”类的部分。
我要做的是使用.active
作为jQuery选择器挂钩来设置活动部分中的子元素的样式,但它根本不起作用。
在每个部分中,会出现与此类似的模板:
<header class="title" data-sheet="1">Launch Count</header>
<div class="dropdown">
<span>Total</span>
<ul>
<li data-sheet="1">Total</li>
<li data-sheet="2">Falcon 9</li>
</ul>
</div>
<div class="contents">
<table>
<tr>
<td class="metric" data-sheet="1">12</td>
<td class="metric" data-sheet="2">7</td>
</tr>
<tr>
<td class="unit" data-sheet="1">Launches</td>
<td class="unit" data-sheet="2">Test</td>
</tr>
</table>
</div>
<footer>
<p data-sheet="1">Test</p>
<p data-sheet="2">Another test</p>
</footer>
假设此特定模板位于具有page3
类的部分内,我可以使用此规则:
$('section.page3 [data-sheet]').not('li').not("[data-sheet*='1']").hide();
隐藏section
中所有包含属性page3
的{{1}}类不等于1的元素。
但是,正如我之前所说,我正在尝试使用.active作为钩子,以确保此规则仅适用于活动的部分,如下所示:
data-sheet
但它根本行不通。没有什么是隐藏的,就像以前一样。为什么会发生这种情况?