2010-03-09 152 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”)隐藏(); (不确定)