2010-11-10 236 views
0
$(function() { 

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

}); 

我的意思是它的工作,但如果我拿出#slideshow它仍然會添加類?這個jquery爲什麼不起作用?

我試過其他的刪除類。

+1

「爲什麼jQuery不工作?」但「我的意思是它的作品」O_o – zerkms 2010-11-10 06:34:13

+0

描述你正在嘗試解決的完整任務。 – zerkms 2010-11-10 06:34:45

+1

哈哈我沒有真正解釋我在做什麼,我認爲這是自我解釋。基本上我想:如果找到部分幻燈片,找到div topbox並添加一個類,有人已經給我解決方案,遺憾的是浪費你的時間。 – Daryl 2010-11-10 06:37:24

回答

2

如果您想檢查元素的存在,那麼您可以使用該元素選擇器的.length屬性。

這個怎麼樣代碼

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

Bang on,我在這裏張貼了一些關於長度的文章,但我只是假設它不是正確的大聲笑。不錯的一個 – Daryl 2010-11-10 06:35:19

1

因爲它返回一個jQuery對象從jQuery('body').find(...)返回值將永遠是正確的。

你要檢查它是否返回匹配的任何元素,所以你想:

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

將始終評估爲真。 $('body')。find('#slideshow')確實會返回一些東西:一個對象(即使它是一個空對象)。相反,測試對象的長度:

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

當其他人打我。 :-) – Daniel 2010-11-10 06:36:09