删除元素的所有类

时间:2014-09-09 13:07:46

标签: javascript jquery

我无法删除元素上的所有类,然后使用switch语句在不同的页面上添加我想要的类

$(document).ready(function() {
switch (window.location.pathname) {
  case '/':
  $("body").removeClass().addClass('homepage');
  case '/users/sign_up':
  $('body').removeClass().addClass('contentpage');
}
});

我不太确定document.ready是否是我需要的?

我的问题是我的选择器不仅仅是身体了,它是一个类,但它可能是几个类名之一。我怎么说“得到身体标签,无论它的类,删除所有课程,然后添加我需要的东西“?

目前发生的所有事情都是正在应用额外的班级名称

有办法做到这一点吗?

感谢

3 个答案:

答案 0 :(得分:6)

ready回调没问题。但是您忘记了break中的switch,这使得'homepage'类始终被'contentpage'替换:

$(function() {
    switch (window.location.pathname) {
      case '/':
         document.body.className = 'homepage';
         break;
      case '/users/sign_up':
         document.body.className = 'contentpage';
         break;
    }
});

请注意,我使用className属性而不是jQuery的函数,这里更简单。

答案 1 :(得分:0)

阅读jquery.com

$("body").removeClass(function() {
    return $(this).attr("class");
});

所以在你的情况下:

$(document).ready(function() {
    switch (window.location.pathname) {
        case '/':
            $("body").removeClass(function(){return $(this).attr("class")}).addClass('homepage');
            break;
        case '/users/sign_up':
            $('body').removeClass(function(){return $(this).attr("class")}).addClass('contentpage');
            break;
    }
});

编辑:现在休息

答案 2 :(得分:-1)

使用jQuery,

$(document).ready(function() {
    switch (window.location.pathname) {
        case '/':
            $("body").attr('class', '').addClass('homepage');
        case '/users/sign_up':
            $('body').attr('class', '').addClass('contentpage');
    }
});