0

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

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

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

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

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

如果我将功能更改为:

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

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

谁能告诉我为什么.addClass()在这种情况下不处理元素,而其他方法(如.hide()DO)有效?

谢谢。

4

2 回答 2

1

代替

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

你能试试吗

element.addClass('dataerror');
于 2013-11-10T20:49:52.947 回答
1

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

于 2013-11-10T20:49:55.677 回答