<ol id="nav">
<li><a href="a.php" class="selected">A</a>
<ol class="child">
<li><a href="a-1.php">A-1</a></li>
</ol>
</li>
<li><a href="b.php">B</a>
<ol class="child">
<li><a href="b-1.php">B-1</a></li>
<li><a href="b-2.php">B-2</a></li>
</ol>
</li>
<li><a href="c.php">C</a>
<ol class="child">
<li><a href="c-1.php">c-1</a></li>
<li><a href="c-2.php">c-2</a></li>
<li><a href="c-3.php">c-3</a></li>
<li><a href="c-4.php">c-4</a></li>
</ol>
</li>
</ol>
选择子菜单时,也会选择其父菜单。 以下代码适用于子css但不适用于父级。
var loc = 'c-3.php';
$("#nav a").each(function() {
$(this).removeClass("selected");
if (loc.indexOf($(this).attr("href")) != -1) {
$(this).addClass("selected");
$(this).parent().addClass("selected"); /* <=== doesn't work :( */
}
});
这个也不起作用......
$(this).closest('ol').parent().addClass("selected");
答案 0 :(得分:1)
你对父母感到困惑,这有效:http://jsfiddle.net/DfcdQ/7/
var loc = 'c-3.php';
$("#nav a").each(function() {
$(this).removeClass("selected");
if (loc.indexOf($(this).attr("href")) != -1) {
$(this).addClass("selected");
$(this).parent().parent().siblings(':first').addClass("selected");
}
});
$(this).parent()
是指<li><a href="c-3.php">c-3</a></li>
,它不是指<a href="c.php">C</a>
答案 1 :(得分:0)
我同意bingjie2680,但取决于你是否希望c.php锚具有选定的类(bingjie2680解决方案)或所有项目的li(下方)。
$(本).parent()的父()的父()addClass( “选择”);。。。
答案 2 :(得分:0)
我基于最近的修改。
$(this).closest('ol').parent('li').find('a').addClass("selected");
以下是工作小提琴链接http://jsfiddle.net/DfcdQ/12/