如果div没有包含特定类的div,那就做点什么吧。 JQuery的

时间:2012-01-06 10:59:32

标签: jquery jquery-selectors if-statement

如果#box没有包含current-map类的div,那就做点什么。

我认为!会起作用,但事实并非如此。

if (!$('#box').closest('.current-map')) {

     //do something

}

3 个答案:

答案 0 :(得分:4)

您可以检查结果选择的长度。如果是0,则没有祖先.current-map元素:

if($("#box").closest(".current-map").length) {
    //.current-map is an ancestor
}

您的尝试不起作用,因为大多数jQuery方法都会返回jQuery实例,无论它是否包含任何DOM元素,并且总是会计算为true

答案 1 :(得分:1)

您应该使用:has()选择器。转动逻辑。

if ( $('.current-map:has(#box)').length > 0 ) {
    // do backflips
}

.closest()因工作速度慢而臭名昭着。

答案 2 :(得分:0)

在if块中尝试.length

   if ($('#box').closest('.current-map').length > 0) {
      //do something
   }