你可以像if($('.div').find('.someelem').length == 0
..那样检查div中是否有.someelem,
但如果我想检查任何元素怎么办?我不知道里面的课程是什么。
<div>
</div>
^检查上面的div是否包含某些内容。
答案 0 :(得分:2)
更快的方法是使用.find()
因为它不会触发某些昂贵的 jQuery的Sizzle Selector Library:
if( !$(".div").find(">")[0] ){
// Maybe has text, but has absolutely no children Elements.
}
如果您想更加具体地了解您的选择器,而不是使用">"
(任何直接孩子),您可以使用"div"
来限制您的搜索到{ {1}}仅元素。
您也可以使用&#34;如果为空&#34;
DIV
或
$(".div:empty").someMethodYouWant(); // Do some stuff on empty elements. (Really empty)
请注意,如果您只有一些文字(意味着它不为空),上述内容将会产生if( $(".div").is(":empty") ){
// Has no elements and no text
}
。
如果您更愿意去寻找直接的孩子false
元素
>
或者:
if( !$(".div:has(>)").length ){
// Maybe has text, but has absolutely no children Elements.
}
甚至更简单:
if( !$(".div:has(>)")[0] ){
// Maybe has text, but has absolutely no children Elements.
}