-5

我想在<li>ID 所在的位置添加一个活动类,例如:

<li><a href="" id="foo">text</a></li>

如何在其中添加一个<li>#foo

4

6 回答 6

3
$('#foo').parent('li').addClass("yourclass")
于 2012-09-05T20:18:01.893 回答
2
$("#foo").closest("li").addClass("bar");

如果您的<a>标签可能包含在其他元素中,而不是 , 的直接子元素,<li>则将parent('li')不起作用:

http://jsfiddle.net/PMfVK/

HTML

<ul>
    <li><div><a id="foo">Foo</a></div></li>
    <li><div><a id="bar">Bar</a></div></li>
</ul>​

JS

$("#foo").closest("li").addClass("foo"); // this will correctly grab the li
$("#bar").parent("li").addClass("bar");​  // this will grab nothing
于 2012-09-05T20:18:35.000 回答
1
$("li").has("#foo").addClass("yourclass")
于 2012-09-05T20:21:25.523 回答
1
$('#foo').parent('li').addClass('active');
于 2012-09-05T20:18:27.617 回答
0

首先foo使用ID 选择器选择具有 ID 的元素。然后,使用.parents选择该元素的<li>父元素。用于.eq(0)确保仅找到最近的父项。最后,用于addClass将类添加到<li>元素。

由于我们使用的是 parent , 即使具有fooID 的元素嵌套在下面的几个元素中,<li>它仍然会被选中。

$("#foo").parents("li").eq(0).addClass("bar");​​

请参阅我在 jsFiddle 上的示例。

于 2012-09-05T20:20:03.420 回答
0
$('a[id]').closest('li').addClass('active');

演示

于 2012-09-05T20:25:33.450 回答