使用jQuery检测div内的元素
问题描述:
您的体验中检测div内是否存在元素的最佳方式是什么?使用jQuery检测div内的元素
我目前使用这样的:
if (($('.parentDiv').width()) > 0){
//Do something
}
必须有一个更优雅的方式。
答
可能不是你想要的,但考虑到有至少在你的要求有点混乱,你可以考虑,如果在所有事情是在容器内:元素,文本,等等。
假设你有一个空的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
答
如果为空手段甚至没有文本节点:
if ($('.parentDiv').contents().length){
//Do stuff
}
或:
$('.parentDiv:not(:empty)') // which is nice...
.contents
docs:
如果你只关心元素,而不是文本节点的说明:获取每个元素的孩子们在集匹配元素,包括文字和评论节点。
:
if ($('.parentDiv').children().length){
//Do stuff
}
答
if ($('.parentDiv').children().length > 0)
{
// do something
}
只有元素或纯文本? – Alp 2012-04-23 14:23:11
我只是在元素之外没有特别的文本节点。 – Ollie 2012-04-23 14:28:29
@Ollie。因此'.width()'被打破了...它不会被** 0 **'