JQuery - 有条件地遍历元素到addClass()

时间:2013-11-03 00:55:21

标签: javascript jquery coffeescript

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

这是CoffeeScript:

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

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

:(

3 个答案:

答案 0 :(得分:3)

:empty会选择没有孩子的元素。因此,用它来有条件地选择某些元素的父母是没有任何意义的。

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

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

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

答案 1 :(得分:3)

使用jQuery.filter()

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

比使用$.each

更少的函数调用

答案 2 :(得分:1)

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

阅读http://api.jquery.com/empty-selector/

上的:empty文档

第二,你正在测试父元素而不是input元素。(因为它们是父母,这意味着它们不是空的,它们都符合要求......