我有4个带有公共类名的输入字段。我用它来检查它是否空白。
var blank = $('.fourFields').filter(function(){
return !$.trim($(this).val()).length;
}).length;
if( !blank ){
//do something
} else {
//how do I use addClass() to the blank input fields here?
}
我的问题是如何获取空白输入字段的ID?
答案 0 :(得分:3)
您可以使用.map()来获取值为空白的输入ID数组
var ids = $('.fourFields').map(function(){
return $.trim($(this).val()) ? undefined : this.id;
}).get();
如果要添加一个类,那么更合适的解决方案是使用.each()
var ids = [];
$('.fourFields').each(function () {
var blank = $.trim(this.value);
if (blank) {
ids.push(this.id);
}
$(this).toggleClass('required', blank);
});
答案 1 :(得分:0)
ID将是this.id(注意,没有$)
答案 2 :(得分:0)
作为非jQuery替代方案,您可以使用以下命令获取id数组:
var ids = Array.prototype.filter.call(document.querySelectorAll('input'),
function(el){return /^\s*$/.test(el.value)}
).reduce(function(p,c){p.push(c.id); return p;},[]);
并且还要做类部分(使用jQuery):
var ids = Array.prototype.filter.call(document.querySelectorAll('input'),
function(el){return /^\s*$/.test(el.value)}
).reduce(function(p,c){
$(c).addClass('whatever');
p.push(c.id);
return p;
},[]);
答案 3 :(得分:0)
要获取空白输入字段的ID,您可以使用以下代码:
$(".fourFields").filter(function(){
if($(this).val() === '')
return alert($(this).prop('id'));
});
你可以参考下面的小提琴: http://jsfiddle.net/varun1989/17wkzgqj/2/