如何使用removeClass()回调函数?

时间:2011-11-07 18:00:13

标签: jquery regex removeclass

因为jQuery 1.4 removeClass();现在将一个函数作为参数。

我的<body>标记添加了几个类,例如:

<body class="heading-helvetica para-georgia pattern-flowers">

我希望能够替换类名,我相信removeClass()中的函数可以帮助我,但我真的不理解the documentation on the jQuery site,也不会对正则表达式有所帮助。

如何将heading-helvetica替换为heading-myriad或将para-georgia替换为para-times,依此类推?

我之前使用过这样的东西,只有当它试图替换的类名是类名列表中的第一个时才有效:

$('#headings li').click(function(){
    var this_class = $(this).attr('id');
    $('body[class|="heading"]').removeClass();
    $('body').addClass(this_class);
});

2 个答案:

答案 0 :(得分:2)

您需要从body标记中获取类列表并迭代/解析它们。

请参阅此文章了解如何获取课程。

Get class list for element with jQuery

您必须找出要添加的类列表以及要删除的类列表。使用函数作为removeClass方法的参数并不是必需的。由于您还需要添加类,因此可能是错误的方法。

答案 1 :(得分:0)

如果您想全部处理它们,可以使用.attr()代替。例如:

var prev = $("body").attr('class'); $("body").attr('class', prev.replace('helvetica', 'myriad'));

这很广泛,取决于你正在做什么,你可能会更好地使用removeClass()addClass()