使用jQuery检测div内的元素

时间:2012-04-23 14:21:13

标签: javascript jquery html dom

检测div中元素是否存在的最佳方法是什么?

我目前正在使用它:

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

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

5 个答案:

答案 0 :(得分:4)

如果为空则表示文本节点均不存在:

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

或:

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

.contents docs

  

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

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

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

答案 1 :(得分: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()就可以了。

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

使用children()功能

$('.parentDiv').children()

答案 4 :(得分:1)

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