创建一个数组并跳过空字段

时间:2012-12-02 14:09:34

标签: javascript arrays html5

我有以下表格:

                <input type="text" name="name1" id="names1" class="names" value="" placeholder="1) Name Here . . .">
                <input type="text" name="name2" id="names2" class="names" value="" placeholder="2) Name Here . . .">
                <input type="text" name="name3" id="names3" class="names" value="" placeholder="3) Name Here . . .">
                <input type="text" name="name4" id="names4" class="names" value="" placeholder="4) Name Here . . .">

我正在尝试在用户单击存储每个名称的提交按钮时创建一个数组:

var values = $('.names').map(function() { return this.value; }).get();

它有效,但它也收集了我不需要的空字段。我想我需要一个条件For语句,但我无法管理它的语法。

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

var values = $('.names').map(function() { if(this.value.trim() != '') return this.value; }).get();

或者:

var result = [];
var elements = getElementsByClassName('names');
for(var i = 0; i < elements.length; i++){
    if(elements[i].value.trim() != '')
          result.push(elements[i].value);
}

答案 1 :(得分:0)

只选择所有非空值的.names

var values = $('.names[value!=""]').map(function() { return this.value; }).get();

在现实世界中,您还需要存储名称:

var values = $('.names[value!=""]').map(function() { 
    return {name: this.name,value: this.value};
}).get();

http://jsfiddle.net/oceog/7ZcbY/