为什么这个jquery不起作用?

时间:2010-11-10 06:31:57

标签: jquery find addclass

$(function () {

    if($('body').find('#slideshow')) {
        $('body').find('.topBox').addClass('home');   
    }

});

我的意思是它有效,但是如果我拿出#slideshow它还会添加这个类吗?

我试过删除课程。

3 个答案:

答案 0 :(得分:2)

如果要检查元素是否存在,则可以对该元素选择器使用.length属性。

这段代码怎么样?

if ($("#slideshow").length > 0)
{
    $('.topBox').addClass('home'); 
}

答案 1 :(得分:1)

jQuery('body').find(...)的返回值将始终为true,因为它返回一个jQuery对象。

您想检查它是否返回任何匹配的元素,因此您需要:

if(jQuery('body').find(...).size())

答案 2 :(得分:1)

if($('body').find('#slideshow')) {}

总是评估为真。 $('body')。find('#slideshow')确实返回一些东西:一个对象(即使它是一个空对象)。相反,测试对象的长度:

if($('body').find('#slideshow').length) {}