0

我希望有不同的背景图像,具体取决于您是否登录。到目前为止,我已经尝试使用 jQuery 向正文添加/删除一个类(使用登录框来确定您是否已登录),但它没有按预期工作。

第一个 if 语句有效,并且类 'index' 设置为主体,但是,当您登录时,不会删除该类,即使登录表单不再存在。

那么,如何更改此代码以使其按我的意愿工作?提前致谢。

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

2 回答 2

2

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

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

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

于 2012-10-27T12:25:10.470 回答
1

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

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

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

于 2012-10-27T12:24:45.880 回答