2014-09-30 137 views
1

我有3个select元素,我使用$(".select-elem select").val()来获取数组中每个select元素的值,但它返回值只有匹配元素集中的第一个元素。例如,如果用户为第一个选择元素选择“2”,为第二个选择“3”,为第三个选择“4”,则val()函数将返回2而不是[2,3,4]。有没有一个函数可以返回一个包含所有三个select元素值的数组?.val()替代方案获取匹配元素集合中所有元素的当前值

<td class="select-elem"> 
<select> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
</select> 
</td> 
<td class="select-elem"> 
<select> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
</select> 
</td> 
<td class="select-elem"> 
<select> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
</select> 
</td> 

回答

3

此使用地图的方法:

var values = $(".select-elem select").map(function() { 
    return $(this).val(); 
}).get(); 
+0

这比接受更好的答案回答。当有像'map'这样的方法为你做这件事时,不需要扩展jQuery – jasonscript 2014-09-30 06:53:18

2

创建您自己的jQuery的方法,并用它你需要的地方,找到下面的代码

//create jquery method arrVal which returns array of values 
$.fn.arrVal = function() { 
    var valArr = []; 
    $(this).each(function(){ 
    valArr.push($(this).val()) 
    }) 
    return valArr; 
} 

//call arrVal method 
$('select').arrVal() 
相关问题