2012-03-23 140 views
21
<div id="example"> 
    <div id="test"></div> 
</div> 

<div id="another">Blah</div> 

我想設置$('#another').hide(),但只有當#example包含一個名爲#test一個子元素一定的子元素,這可能嗎?它似乎是。檢查父元素包含使用jQuery

回答

46

使用length

if ($('#example').find('#test').length) { 
    // found! 
} 
4

我想你正在尋找的是以下

if (jQuery.contains($('#example'), $('#test')) { 
    $('#another').hide(); 
} 

這可能工作爲好,不知道把我的頭頂部。

if ($('#test', $('#example')).size() > 0) { 
    $('#another').hide(); 
} 
+1

'尺寸()'。很久沒有見過! '長度'ftw。 – elclanrs 2012-03-23 04:08:19

+4

應該使用DOM元素作爲參數調用'contains'而不是jQuery對象嗎? http://api.jquery.com/jQuery.contains/ – mxro 2013-07-19 05:59:32

3
<script> 
    var test = $('#example #test').length(); 
    if(test !== 0){ 
     $('#another').hide(); 
    } 
</script> 
+0

'測試'永遠不會'未定義' – Esailija 2012-03-23 03:48:08

+1

長度不是函數 - >'長度'。而且它也是麻煩的,所以你可以擺脫'!== 0',只是做'if(test)' – elclanrs 2012-03-23 04:08:53

1

這是很簡單的。

$(document).ready(function(){ 
    if($('#example').children('#test').length > 0) 
    { 
     $('#another').hide(); 
    } 
});​ 

http://jsfiddle.net/8rrTp/