У меня есть простая функция jQuery, которая добавляет класс (.dataerror
) к различным элементам html, если они пусты. Во-первых, я делаю это:
$('.editable').each(function() {
if (!$(this).html()) {
showerror($(this));
}
});
И супер-упрощенная версия функции выглядит так:
function showerror(element) {
$(element).addClass('dataerror');
}
Однако это НЕ добавляет класс к элементам, если они пусты.
Если я изменил функцию на:
function showerror(element){
$(element).hide();
}
... тогда элементы ARE скрыты, как ожидалось, если они пусты.
Может ли кто-нибудь сказать мне, почему .addClass()
НЕ работает над элементом в этом контексте, в то время как другие методы, такие как .hide()
DO работают?
Спасибо.
Используйте showerror(this);
вместо showerror($(this))
потому что вы дважды обертываете элемент DOM в объект jquery.
Вместо
$(element).addClass('dataerror');
можно попробовать
element.addClass('dataerror');