Jquery选择器用于查找没有特定类的所有输入

时间:2013-09-23 17:12:24

标签: javascript jquery

我需要创建一个jQuery选择器来查找没有“clear”类的所有输入,使其值大写。

目前我有这段代码:

$("form").submit(function () {
    $("input[type=text]").val(function () {
        if (!$(this).hasClass("clear")) {
            return this.value.toUpperCase();
        } else {
            return this.value;
        }
    });

    $("input[type=text].lower").val(function () {
        return this.value.toLowerCase();
    });
});

此代码运行良好,但如果我只使用选择器,我可以跳过if / else代码。我搜索过这个选择器,但没有成功。

有什么想法吗?

最终代码

我的最终代码如下:

$("form").submit(function () {
    $("input[type=text]").not(".clear").not(".lower").val(function () {
        return this.value.toUpperCase();
    });

    $("input[type=text].lower").val(function () {
        return this.value.toLowerCase();
    });
});

感谢所有回复。

4 个答案:

答案 0 :(得分:6)

使用:not()

$("input[type=text]:not(.clear)").val(function () {
    return this.value.toUpperCase();
});

答案 1 :(得分:4)

使用.not()

$("input[type=text]").not("YOUR_CLASS").val(function () {
        return this.value.toUpperCase();
    });

答案 2 :(得分:2)

选择原始选择器,然后保留条件语句。一下子做两件事。请注意,返回this.value是多余的,因此在此处将其删除。

$("input[type=text]").val(function () {
    var $t = $(this);
    if ( $t.hasClass("lower") ) return this.value.toLowerCase();
    if ( !$t.hasClass("clear") ) return this.value.toUpperCase();
});

答案 3 :(得分:1)

您可以使用jQuery伪选择器:not -

$("input[type=text]:not(.clear)")

Here是关于它的一些文档

编辑:使用.not()函数而不是:尽可能 - it performs better