Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除元素的所有类_Javascript_Jquery - Fatal编程技术网

Javascript 删除元素的所有类

Javascript 删除元素的所有类,javascript,jquery,Javascript,Jquery,我很难删除元素上的所有类,然后使用switch语句在不同的页面上添加所需的类 $(document).ready(function() { switch (window.location.pathname) { case '/': $("body").removeClass().addClass('homepage'); case '/users/sign_up': $('body').removeClass().addClass('contentpage'); } }); 我

我很难删除元素上的所有类,然后使用switch语句在不同的页面上添加所需的类

$(document).ready(function() {
switch (window.location.pathname) {
  case '/':
  $("body").removeClass().addClass('homepage');
  case '/users/sign_up':
  $('body').removeClass().addClass('contentpage');
}
});
我不太确定document.ready是否是我需要的

我的问题是,我的选择器不再只是一个实体,它是一个类,但它可能是少数几个类名之一。。我怎么说得到body标签,不管它的类是什么,删除所有的类,然后添加我需要的

目前所发生的一切就是应用了额外的类名

有办法做到这一点吗


谢谢

就绪回拨没有问题。但是您忘记了开关的一个中断,这使得“homepage”类总是被“contentpage”替换:


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

就绪回调没有问题。但是您忘记了开关的一个中断,这使得“homepage”类总是被“contentpage”替换:

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

使用jQuery

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

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

因此,在你的情况下:

$(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;
    }
});
编辑:现在有中断

如下所示:

因此,在你的情况下:

$(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;
    }
});


编辑:现在使用breaks

对不起,但是如果您想要body,无论它有什么类,您仍然可以使用$body。。。。我遗漏了什么吗?好吧,这是我的想法,但它对我不起作用对不起,但是如果你想要身体,不管它有什么类,你仍然可以使用$body。。。。我是不是遗漏了什么?我是这么想的,但对我来说不起作用当路径名为/,这将类设置为contentpage。当路径名为/,这将类设置为contentpage。嗨,我是不是遗漏了什么?你能看看我对他的评论吗?@RoyiNamir我不知道你说了什么meant@dystroy他写的代码撇开了中断部分-应该可以工作$body.removeClass.addClass'homepage';-将从主体中删除类并设置自己的类class@RoyiNamir是的,它应该回到原来的代码,没有工作,添加了中断,我的代码也工作了,尽管我认为dystroy解决方案更干净、更高效。系统嗨,我是不是遗漏了什么?你能看看我对他的评论吗?@RoyiNamir我不知道你说了什么meant@dystroy他写的代码撇开了中断部分-应该可以工作$body.removeClass.addClass'homepage';-将从主体中删除类并设置自己的类class@RoyiNamir是的,它应该回到原来的代码,不起作用,添加了中断,我的代码也起作用了,尽管我认为dystroy解决方案更干净、更高效。这既错了,读我的答案,也让这么简单的事情变得难以置信的复杂。是的,我也没有安排好休息时间。虽然Richlewis说选择器不再是尸体了。在您的情况下,程序员选择正确的元素文档变得更加困难。。我讨厌那个。因此,我选择使用jQuery。特别是当这是超出每一页只有一次重新加载;今天的计算机不会在这么简单的计算上有太大的滞后。读我的答案是错误的,做这么简单的事情是非常复杂的。虽然Richlewis说选择器不再是尸体了。在您的情况下,程序员选择正确的元素文档变得更加困难。。我讨厌那个。因此,我选择使用jQuery。特别是当这是超出每一页只有一次重新加载;今天的计算机在这样一个简单的计算上不会有太大的滞后