如果body有X类,只运行代码?

时间:2014-10-01 10:07:10

标签: javascript jquery

我希望只有在正文具有home类时才会运行此代码。所以我创建了一个名为isHome的变量,我试图将代码包裹起来。但是,我认为代码存在问题。有人可以指出出了什么问题吗?

var isHome = $('body.home');

if (isHome) {
    $('.wp-polls-form input.Buttons').click(function( e ){
        e.preventDefault();
        $('html, body').animate({
            scrollTop: $("#top-section").offset().top - (
              $(window).width() < 450 ? 112 : 60
            )
        }, 500);
    });
}

4 个答案:

答案 0 :(得分:4)

您的if条件将始终为true,因为jQuery对象(即使它为空)将等同于true

相反,您可以使用length属性检查选择器是否找到匹配项:

var $isHome = $('body.home');
if ($isHome.length) {
    // your code...
}

或者您可以使用hasClass检查元素是否具有所需的类:

if ($('body').hasClass('home')) {
    // your code...
}

答案 1 :(得分:3)

用作

if($('body').hasClass("home"))

答案 2 :(得分:2)

如图所示使用.hasClass()

var isHome = $('body').hasClass('home');

如果正文有一个家庭,那么 $(&#39; body&#39;)。hasClass(&#39; home&#39;); 声明将返回true ,否则 false

或直接使用if($('body').hasClass("home"))

答案 3 :(得分:0)

您应该尝试.hasClass(),因为它会返回boolean

   var isHome = $('body').hasClass('home');
   if(isHome) { //your code }

谢谢!