根据现有元素添加/删除body类

时间:2012-10-27 12:19:49

标签: jquery class background addclass removeclass

我希望拥有不同的背景图片,具体取决于您是否登录。到目前为止,我已经尝试使用jQuery向一个类添加/删除一个类(使用登录框来查明您是否已登录),但它不能正常工作。

第一个if语句有效且类'index'设置为正文,但是,当你登录类时,即使loginform不再存在,也不会删除它。

那么,如何更改此代码以便它可以按我的意愿运行?提前谢谢。

if($('#loginForm')) {
    $('body').addClass('index');
}
else {
    $('body').removeClass('index');
}

2 个答案:

答案 0 :(得分:2)

if($('#loginForm'))将始终返回true,因为即使元素不存在,jquery也会创建一个空对象。使用length来测试jQuery元素对象是否存在

$('body').toggleClass('index', $('#loginForm').length );

使用toggleClass可以缩短代码,第二个参数是布尔值

答案 1 :(得分:1)

您可以使用length属性来测试元素是否存在:

if ($('#loginForm').length) {
    $('body').addClass('index');
}
else {
    $('body').removeClass('index');
}

您也可以使用jQuery的内置size()方法,但最好尽可能使用本机属性。