使用/ jQuery交换类

时间:2011-06-19 18:07:07

标签: jquery

如何在点击时使用jQuery进行条件交换。如果存在某个类,则将其交换为另一个类,例如交换类“A”到“B”。

<a href="#" id="clickMe"><span class="A"></span>link</a>

我一直在尝试这个,但它似乎不起作用:

$(this).closest("span").toggleClass("A,B");

我错过了什么?

2 个答案:

答案 0 :(得分:2)

.closest()上升到DOM树,而不是下来。

使用.children().find()

$(function ()
{
    $('#clickMe').click(function ()
    {
        $(this).children('span').toggleClass('a b');
        return false; // don't follow the link
    });
});

.toggleClass()期望多个类名用空格分隔,而不是用逗号分隔。

如果您只希望类交换发生一次:

$(function ()
{
    $('#clickMe').click(function ()
    {
        var $span = $(this).children('span:first');
        $span.toggleClass('a b', $span.hasClass('a'));
        return false; // don't follow the link
    });
});

答案 1 :(得分:-1)

$(this).closest("span").removeClass("A").addClass("B");

编辑:以上将强制将A类替换为B类。我认为您所寻找的是每次代码运行时在A和B之间切换,对吗?尝试:

$(this).closest("span").toggleClass("A B");