Добавление класса в объект jQuery, который был передан функции

0

У меня есть простая функция 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 работают?

Спасибо.

  • 0
    к каким типам элементов вы добавляете класс ".editable"?
  • 0
    Просто <p> и <h1>.
Теги:

2 ответа

1

Используйте showerror(this); вместо showerror($(this)) потому что вы дважды обертываете элемент DOM в объект jquery.

  • 0
    Извините - уже попробовал это тоже. Такое же поведение
  • 0
    @ user1418711 jsfiddle.net/rDarT Это работает для меня
Показать ещё 1 комментарий
1

Вместо

$(element).addClass('dataerror');

можно попробовать

element.addClass('dataerror');
  • 0
    Уже попробовал - такое же поведение.
  • 0
    Пожалуйста, посмотрите эту скрипку, это то, что вам нужно: jsbin.com/edOJurI/8/edit
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню