Я пытаюсь вызвать функцию, только если элемент HTML пуст, используя jQuery.
Что-то вроде этого:
if (isEmpty($('#element'))) {
// do something
}
javascript
jquery
Vitto
источник
источник
$('#elem').text().match(/\S/) || alert('empty');
Ответы:
Для получения дополнительной информации см. http://api.jquery.com/is/ и http://api.jquery.com/empty-selector/.
РЕДАКТИРОВАТЬ:
Как указывалось некоторыми, интерпретация пустого элемента в браузере может отличаться. Если вы хотите игнорировать невидимые элементы, такие как пробелы и разрывы строк, и сделать реализацию более согласованной, вы можете создать функцию (или просто использовать код внутри нее).
Вы также можете превратить его в плагин jQuery, но вы поняли идею.
источник
Я обнаружил, что это единственный надежный способ (поскольку Chrome и FF рассматривают пробелы и разрывы строк как элементы):
источник
if(!$.trim($("selector").html())
if($("selector").children().length === 0)
илиif($("selector > *").length === 0)
.Пробелы и разрывы строк являются основными проблемами при использовании: пустой селектор. Осторожно, в CSS псевдокласс: empty ведет себя так же. Мне нравится этот метод:
источник
$.children()
он не возвращает текст или узлы комментариев, что означает, что это решение проверяет только то, что элемент пуст из элементов . Если элемент, содержащий только текст или комментарии, не следует считать пустым для ваших нужд, вам следует использовать одно из других решений.select
элементов идеально подходит. условие также может бытьif(! $el.children().length)
.Да, я знаю, это не jQuery, так что вы можете использовать это:
Счастливы сейчас?
источник
filter
функции jQuery, так как не хотел использовать jQuery внутри функции без необходимости.<div class="results"> </div>
, это утверждение возвращает ложь. jsfiddle.net/ytliuSVN/0pdwLt46источник
this
помимо элемента jQuery @ZealMurapa?Если под "пусто", вы имеете в виду без содержания HTML,
источник
Пусто как в не содержит текста?
источник
В резюме есть много вариантов, чтобы узнать, пуст ли элемент:
1- Использование
html
:2- Использование
text
:3- Использование
is(':empty')
:4- Использование
length
В зависимости, если вы пытаетесь выяснить, является ли элемент ввода пустым, вы можете использовать
val
:источник
Еще один вариант, который требует меньше «работы» для браузера, чем
html()
илиchildren()
:источник
или
источник
Можешь попробовать:
* Заменить пробелы, просто в случае;)
источник
!/[\S]/.test($('Selector').html())
работать лучше, если вы найдете какое-то свободноеThe production CharacterClassEscape :: S evaluates by returning the set of all characters not included in the set returned by CharacterClassEscape :: s.
из ecma-international.org/ecma-262/5.1/#sec-15.10.2.12источник
Вы ищете
jQuery.isEmptyObject()
?http://api.jquery.com/jquery.isemptyobject/
источник
Вот фильтр jQuery, основанный на https://stackoverflow.com/a/6813294/698289
источник
JavaScript
попробуйте использовать все это!
источник
Попробуй это:
источник
Разрывы строк рассматриваются как содержимое элементов в FF.
Пример:
В IE оба div считаются пустыми, в FF Chrome только последний пустой.
Вы можете использовать решение, предоставленное @qwertymk
или
источник