如何检查div元素是否为空
可能重复:
使用jQuery检查html元素是否为空
我有一个像这样的空div:
我需要检查它是否为空。 如果它是空的,则需要返回true,然后返回一些
元素被添加。 如果不是,则返回false并执行其他一些function。 什么是检查是否有的最佳方法
div中的元素?
谢谢
你可以使用.is()
。
if( $('#leftmenu').is(':empty') ) {
或者您可以测试length
属性以查看是否找到了一个:
if( $('#leftmenu:empty').length ) {
您可以使用$.trim()
删除空格(如果这是您想要的)并检查内容的长度。
if( !$.trim( $('#leftmenu').html() ).length ) {
使用普通的JavaScript
var isEmpty = document.getElementById('cartContent').innerHTML === "";
如果你正在使用jquery,可以这样做
var isEmpty = $("#cartContent").html() === "";
像其他人已经注意到的那样,你可以在jQuery中使用:empty
如下:
$('#cartContent:empty').remove();
如果它为空,它将删除#cartContent
div。
但是人们在这里提出的这个和其他技术可能不会做你想要的,因为如果它有任何包含空格的文本节点,它就不会被认为是空的。 所以这不是空的:
虽然你可能想把它视为空。
我前段时间遇到过这个问题而且我写了这个小小的jQuery插件 – 只需将它添加到你的代码中:
jQuery.expr[':'].space = function(elem) { var $elem = jQuery(elem); return !$elem.children().length && !$elem.text().match(/\S/); }
现在你可以使用了
$('#cartContent:space').remove();
如果它是空的或只包含空格,它将删除div。 当然,你不仅可以删除它,还可以做任何你喜欢的事情,比如
$('#cartContent:space').append('It is empty
');
你可以使用:not
这样的:
$('#cartContent:not(:space)').append('It is not empty
');
我出来了这个测试,可靠地做了我想要的,你可以把它从插件中取出来作为一个独立的测试使用它:
这个适用于jQuery对象:
function testEmpty($elem) { return !$elem.children().length && !$elem.text().match(/\S/); }
这个适用于DOM节点:
function testEmpty(elem) { var $elem = jQuery(elem); return !$elem.children().length && !$elem.text().match(/\S/); }
这比使用.trim
更好,因为上面的代码首先测试被测元素是否有任何子元素,如果是,它会尝试找到第一个非空格字符然后停止,而不需要读取或改变字符串,如果它甚至有一个字符不是空格。
希望能帮助到你。
您可以使用is函数
if( $('#cartContent').is(':empty') ) { }
或使用长度
if( $('#cartContent:empty').length ) { }
var empty = $("#cartContent").html().trim().length == 0;
if ($("#cartContent").children().length == 0) { // no child }