我有3个选择元素,我使用$(".select-elem select").val()
来获取数组中每个select元素的值,但它只返回匹配元素集中第一个元素的值。例如,如果用户为第一个选择元素选择“2”,为第二个选择元素选择“3”,为第三个选择元素选择“4”,则val()函数返回2
而不是[2,3,4]
。是否有一个函数可以返回一个包含所有三个选择元素值的数组?
<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>
答案 0 :(得分:3)
使用地图方法:
var values = $(".select-elem select").map(function() {
return $(this).val();
}).get();
答案 1 :(得分: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()