如何针对特定元素有条件地切换类?

时间:2013-08-07 04:06:27

标签: javascript jquery

我需要仅在其祖父元素具有特定类时才切换元素的类。代码是这样的:

<ul>
    <li class="active">
        <a class"something" href="#"><span class="icon-a"></span></a> 
    </li>
    <li>
        <a class"something" href="#"><span class="icon-a"></span></a>
    </li>
    <li>
        <a class"something" href="#"><span class="icon-a"></span></a>
    </li>
</ul>

我尝试过的jQuery代码是:

if ($(".something span").parents('li').hasClass("active") && $(".something span").hasClass("icon-a")) {
$(".something span").toggleClass("icon-a").toggleClass("icon-b");
}

问题是所有的span元素都被其类切换了。如果祖父母元素<li>具有“活动”类,我只需要切换。

1 个答案:

答案 0 :(得分:1)

只需选择您所指的元素,然后忘记条件。

$('li.category.active > a.something > span.icon-a').addClass('icon-b');