我无法删除元素上的所有类,然后使用switch语句在不同的页面上添加我想要的类
$(document).ready(function() {
switch (window.location.pathname) {
case '/':
$("body").removeClass().addClass('homepage');
case '/users/sign_up':
$('body').removeClass().addClass('contentpage');
}
});
我不太确定document.ready是否是我需要的?
我的问题是我的选择器不仅仅是身体了,它是一个类,但它可能是几个类名之一。我怎么说“得到身体标签,无论它的类,删除所有课程,然后添加我需要的东西“?
目前发生的所有事情都是正在应用额外的班级名称
有办法做到这一点吗?
感谢
答案 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');
}
});