How to detect if an HTML element is empty?

13

How can I detect if an HTML element is empty with jQuery? I need to make a condition if the element is empty.

    
asked by anonymous 06.01.2014 / 19:48

4 answers

15

Try this:

if ($('#element').is(':empty')){
  //seu codigo
}
    
06.01.2014 / 19:50
4

You can use .html().length to check the content size of the element.

Code sample:

<div id="minhaDiv"></div>
<div id="minhaDiv2">2</div>
var div = $('#minhaDiv').html().length;     // dá 0
var div2 = $('#minhaDiv2').html().length;   // dá 1
div && console.log('Div 1: ' + div);        // não aparece
div2 && console.log('Div 2: ' + div2);      // aparece

Demo

    
06.01.2014 / 19:50
4

Checking if you do not have any characters (size zero):

if ($('seletor').is(':empty'))

Checking if you do not have any content (ignoring whitespace):

if ($.trim($('seletor').html()) == '')
    
06.01.2014 / 20:02
0

You can use

jQuery(document).ready(function () {

    //esta é uma alternativa mas pode falhar quando existem espaços em branco dentro da tag
    var test = jQuery("#elemento").html();
    if (test.length <= 0) {
        //elemento vazio.. faça algo
        alert("vazio");
    } else {
        //element possui html dentro...
        alert("não vazio");
    }

    //uma outra alternativa conta apenas os filhos dentro

    if (jQuery("#elemento").children().length <= 0) {
        //vazio
        alert("vazio");
    } else {
        //não vazio...
        alert("não vazio");
    }

    //se for verificar apenas o texto utilize .text() ao invés de .html()
});

An example is here

    
22.09.2015 / 17:14