将类添加到已传递给函数的jQuery对象

时间:2013-11-10 20:45:17

标签: jquery

我有一个简单的jQuery函数,如果它们为空,则会向各种html元素添加一个类(.dataerror)。首先,我这样做:

$('.editable').each(function() {
    if (!$(this).html()) {
        showerror($(this));
    }
});

该函数的超简化版本如下所示:

function showerror(element) {
    $(element).addClass('dataerror');
}

但是,如果元素为空,则不会将该类添加到元素中。

如果我将功能更改为:

function showerror(element){
    $(element).hide();
}

...如果元素为空,则元素将按预期隐藏。

任何人都可以告诉我为什么.addClass()不能在此上下文中处理元素,而.hide()等其他方法可以工作吗?

THX。

2 个答案:

答案 0 :(得分:1)

而不是

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

可以试试吗

element.addClass('dataerror');

答案 1 :(得分:1)

使用showerror(this);代替showerror($(this)),因为您将DOM元素包装到jquery对象中两次。