我试图调用一个函数,只有当一个HTML元素是空的,使用jQuery。

就像这样:

if (isEmpty($('#element'))) {
    // do something
}

当前回答

空是指不包含文本吗?

if (!$('#element').text().length) {
    ...
}

其他回答

空是指不包含文本吗?

if (!$('#element').text().length) {
    ...
}

换行符被认为是FF中元素的内容。

<div>
</div>
<div></div>

Ex:

$("div:empty").text("Empty").css('background', '#ff0000');

在IE中,两个div都被认为是空的,在FF和Chrome中,只有最后一个是空的。

您可以使用@qwertymk提供的解决方案

if(!/[\S]/.test($('#element').html())) { // for one element
    alert('empty');
}

or

$('.elements').each(function(){  // for many elements
    if(!/[\S]/.test($(this).html())) { 
        // is empty
    }
})

对于浏览器来说,另一个选项应该比html()或children()要求更少的“工作”:

function isEmpty( el ){
  return !el.has('*').length;
}

试试这个:

if (!$('#el').html()) {
    ...
}

在resume中,有很多选项可以判断一个元素是否为空:

1-使用html:

if (!$.trim($('p#element').html())) {
    // paragraph with id="element" is empty, your code goes here
}

2-使用文本:

if (!$.trim($('p#element').text())) {
    // paragraph with id="element" is empty, your code goes here
}

3-使用is(':empty'):

if ($('p#element').is(':empty')) {
    // paragraph with id="element" is empty, your code goes here
}

4-使用长度

if (!$('p#element').length){
    // paragraph with id="element" is empty, your code goes here
}

在addiction中,如果你想知道输入元素是否为空,可以使用val:

if (!$.trim($('input#element').val())) {
    // input with id="element" is empty, your code goes here
}