我需要创建一个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();
});
});
感谢所有回复。
答案 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