2

根据您的经验,检测 div 中是否存在元素的最佳方法是什么?

我目前正在使用这个:

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

必须有一个更优雅的方式。

4

5 回答 5

4

如果空意味着甚至没有文本节点:

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

或者:

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

.contents 文档

描述:获取匹配元素集中每个元素的子元素,包括文本和注释节点。

如果您只关心元素而不关心文本节点:

if ($('.parentDiv').children().length){
    //Do stuff      
}
于 2012-04-23T14:22:29.650 回答
3

可能不是您想要的,但考虑到您的要求至少有点混乱,您可以考虑容器内是否有任何东西:元素、文本等等。

假设你有一个空的 div:

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

$(".parentDiv").html().length == 0表示其空性。

如果 div 不为空:

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

然后$(".parentDiv").html().length将指示其占用情况(在这些情况下分别返回 1 和 11。)

如果您只想检查元素或特定元素,那么$(".parentDiv").children()将是要走的路。

于 2012-04-23T14:29:44.527 回答
2

假设您只关心元素(而不是文本节点),您可以检查元素是否有children

if($('.parentDiv').children().length) {
    //Do stuff
}
于 2012-04-23T14:23:20.403 回答
1

使用children()功能

$('.parentDiv').children()
于 2012-04-23T14:23:06.033 回答
1
if ( $( '.parentDiv' ).children().length > 0 )
{
     // do something
}
于 2012-04-23T14:24:21.277 回答