2010-03-09 199 views
3

我有幾個div共享一個共同的類。如果其中一個div做而不是有一個子div,我想隱藏div。我可以找到正確的div,但我無法隱藏它。Jquery - 隱藏特定的div

這是我的代碼,

$(function() { 

     if ($(".adRight.childen('div')").length == 0) { 
      $(this).hide(); 

     } 

    }); 

我應該使用,而不是(這)是什麼?這是指文檔,而不是發現if語句的div。

回答

5

您正在尋找:

$("div.adRight:not(:has(div))").hide(); 

它是如何讀取。

你原來的代碼與功能混淆選擇器(例如,.childen被視爲一個類選擇器),並表明你需要多讀一點,才能扭動jQuery代碼。抱歉。
例如,您的if語句正在尋找jQuery找不到的東西(錯誤的語法)。 jQuery返回一個空集合 - 它有一個不拋出不需要的異常的策略,所以它的長度是0.它不尋找0個子節點。
另外,請注意,對於像hide這樣的簡單操作,您不需要迭代集合 - hide將與您已找到的元素一起使用,使用選擇器。

+0

謝謝你Kobi!非常好的和有效的代碼。 :) 我的理解是否正確, - div.adRight是指adRight類的所有div? - :不是和:已檢查它是否沒有div? – 2010-03-09 10:02:00

+0

喬瓦 - 正確。 jQuery的選擇器非常強大,但易於使用和可讀。你只需要找到合適的人! – Kobi 2010-03-09 10:05:10

0

可能:

如果($( 「adRight格 」)==未定義){ $(「。adRight」)隱藏(); (不確定)