0

我有一些输入字段,如果它们不为空,我正在尝试将类添加到它们的父容器中。

这是咖啡脚本:

$(".inputA, .inputB").parent().addClass(->
        if !$(this).is(":empty")
            "input-set"
    )

这成功地附加"input-set"到父类,但在所有情况下,不仅仅是空输入字段。

:(

4

3 回答 3

3

利用jQuery.filter()

$(".inputA, .inputB").filter(function(){
    return this.value !='';
}).parent().addClass("input-set");

比使用更少的函数调用$.each

于 2013-11-03T01:32:34.707 回答
3

:empty将选择没有子元素的元素。因此,使用它来有条件地选择某些元素的父级没有任何意义。

参考:https ://developer.mozilla.org/en-US/docs/Web/CSS/:empty

如果您希望将类添加到尚未填充的输入的父级,那么您可以使用以下内容:

$(".inputA, .inputB").each(function(){
    if (this.value !== "") {
        $(this).parent().addClass('input-set');
    }
});
于 2013-11-03T01:02:57.163 回答
1

首先,input元素根据定义是空的..

阅读http://api.jquery.com/empty-selector/:empty上的文档

其次,您正在测试父元素而不是input那些..(因为它们是父元素,这意味着它们不是空的,它们都符合要求..

于 2013-11-03T01:02:38.790 回答