我有一个jQuery对象obj
,它封装了一组输入元素。
我正在使用此代码,以便从每个元素的值中创建一个数组:
$.map(obj, function(elem, i){
return $(elem).val();
});
问题是有时某些输入字段包含无效值,我想在创建数组的过程中跳过它们。做一个简单的return false
似乎没有跳过元素,而是在数组中插入false
。
我想知道是否有办法在没有明确使用.each
的情况下实际执行。
答案 0 :(得分:11)
由于它是一个jQuery集合,你可以直接执行.map
然后使用.get
使它成为一个数组。
var values = obj.map(function(){
return this.value ? this.value : null;
}).get();
注意:上述检查将返回任何非假的值。
答案 1 :(得分:5)
我本应该尝试不做任何事情(无效),但是不知道为什么早些时候我没有想到这一点。
如果你想做同样的事情,这里有修复:
$.map(obj, function(elem, i){
if($(elem).val().length == 0) return;
return $(elem).val();
});
编辑
我刚刚在这里测试了长度并省略了验证码以便保持相同的主题