我有一个如下的 HTML 结构:
<ul id="mainMenu">
<li class="itm_1">
Text...
</li>
<li class="itm_2">
Text...
<ul>
<li class="itm_3">
Text...
<ul>
<li class="itm_4">
Text...
</li>
<li class="itm_5">
Text...
</li>
</ul>
</li>
<li class="itm_6">
Text...
</li>
</ul>
</li>
</ul>
我喜欢做的是向活动元素添加一个类,然后在同一路径中的任何其他元素中添加另一个类,如下例所示:
<ul id="mainMenu">
<li class="itm_1">
Text...
</li>
<li class="itm_2 ANCESTOR_ACTIVE">
Text...
<ul>
<li class="itm_3 ANCESTOR_ACTIVE">
Text...
<ul>
<li class="itm_4">
Text...
</li>
<li class="itm_5 ACTIVE">
Text...
</li>
</ul>
</li>
<li class="itm_6">
Text...
</li>
</ul>
</li>
</ul>
将被视为活动的元素我可以找到它并添加活动的类,但我找不到在同一路径中活动元素上方的元素中添加祖先活动类的方法。
现在在我的脚本中,我有以下代码:
<?php
$current_page = $page_id; // Lets say is 5
?>
<script type="text/javascript">
var cp = {
p : <?php echo $current_page; ?>
};
jQuery(document).ready(
function($)
{
$('.itm_' + cp.p).addClass('active');
}
);
</script>
注意:嵌套数组并不总是具有相同的深度。在某些情况下,还有其他更多的嵌套列表,而在其他一些情况下,没有子列表我如何爬到顶部元素#mainMenu 并使用 jQuery 将类“ancestor_active”添加到同一路径中的每个 li 元素?