jQuery:选择子元素,但我想更改父元素?

时间:2012-11-22 02:27:21

标签: jquery selector addclass removeclass

我对jQuery有疑问

<ul class="tabs">
    <li class="active"><a href="#doc-new">Home</a></li>
    <li><a href="#doc-fav">Profile</a></li>
    <li><a href="#doc-read">Messages</a></li>
</ul>

如何使用jQuery为<li> <a>设置有效,href是 doc-read

<ul class="tabs">
        <li><a href="#doc-new">Home</a></li>
        <li class="active"><a href="#doc-fav">Profile</a></li>
        <li><a href="#doc-read">Messages</a></li>
</ul>

我可以找到 #doc-read ,但不知道如何addClass与父<li>

4 个答案:

答案 0 :(得分:5)

  

“如何使用jQuery为<li> <a>设置有效{id}是doc-read?”

那不是“id”,而是“href”。但无论如何,你要做到这一点:

$('a[href="#doc-read"]').parent().addClass("active");

但是,如果想要将li设置为活动状态,只需单击任何一个锚元素,那么你可以这样做:

$(document).ready(function() {
    $("ul.tabs a").click(function() {          // when any anchor clicked
        $("ul.tabs li").removeClass("active"); // remove current "active"
        $(this).parent().addClass("active");   // set "active" on parent
                                               // of clicked anchor
    });
});

演示:http://jsfiddle.net/tsSQq/

答案 1 :(得分:2)

将锚标记ID设为“doc-read”。

$(".tabs li").removeClass('active')
$(".tabs li").find("#doc-read").parent('li').addClass('active');

在这里尝试一下 - jsFiddle

答案 2 :(得分:0)

我发现查询低于它并且它完美运行:

$('li:has(a[href="#doc-fav"])').addClass('active');

答案 3 :(得分:-1)

只需使用addClass()和removeClass()

$(".tabs>li:eq(0)").removeClass("active");
$(".tabs>li:eq(1)").addClass("active");