2012-04-23 62 views
2

您的體驗中檢測div內是否存在元素的最佳方式是什麼?使用jQuery檢測div內的元素

我目前使用這樣的:

if (($('.parentDiv').width()) > 0){ 
    //Do something 
} 

必須有一個更優雅的方式。

+1

只有元素或純文本? – Alp 2012-04-23 14:23:11

+0

我只是在元素之外沒有特別的文本節點。 – Ollie 2012-04-23 14:28:29

+0

@Ollie。因此'.width()'被打破了...它不會被** 0 **'

foo
' – gdoron 2012-04-23 14:29:50

回答

3

可能不是你想要的,但考慮到有至少在你的要求有點混亂,你可以考慮,如果在所有事情是在容器內:元素,文本,等等。

假設你有一個空的div:

<div class="parentDiv"></div>​ 

然後$(".parentDiv").html().length == 0指示其空虛。

如果格不爲空:

<div class="parentDiv"> </div>​ 
<div class="parentDiv"><div></div></div>​ 

然後$(".parentDiv").html().length將指示其occupiedness如果你希望只檢查元素(分別返回1和11,在這些情況下)

,或特定元素,那麼$(".parentDiv").children()就是要走的路。

+0

正是我之後,謝謝 – Ollie 2012-04-23 14:39:41

4

如果爲空手段甚至沒有文本節點:

if ($('.parentDiv').contents().length){ 
    //Do stuff  
} 

或:

$('.parentDiv:not(:empty)') // which is nice... 

.contentsdocs

說明:獲取每個元素的孩子們在集匹配元素,包括文字和評論節點。

如果你只關心元素,而不是文本節點的

if ($('.parentDiv').children().length){ 
    //Do stuff  
} 
1

使用children()功能

$('.parentDiv').children() 
+1

OP要求檢測元素而不是文本。 – Gabe 2012-04-23 14:24:12

+0

你是對的,但閱讀[這個評論](http://stackoverflow.com/questions/10282396/detect-an-element-inside-a-div-using-jquery#comment13227599_10282396) – gdoron 2012-04-23 14:32:42

2

假設你只關心內容(而不是文本節點),你可以檢查是否有任何元素children

if($('.parentDiv').children().length) { 
    //Do stuff 
} 
1
if ($('.parentDiv').children().length > 0) 
{ 
    // do something 
}