Альтернатива.val(), которая получает текущее значение всех элементов в наборе соответствующих элементов.

У меня есть 3 выбранных элемента, и я использую $(".select-elem select").val() чтобы получить значение каждого элемента select в массиве, но он возвращает значение только первого элемента в наборе соответствующих элементов. Например, если пользователь выбирает "2" для первого элемента выбора, "3" для второго и "4" для третьего, функция val() возвращает 2 вместо [2,3,4], Есть ли функция, которая будет возвращать массив, содержащий значения всех трех элементов select?

<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>

2 ответа

Решение

Используйте методы карты для этого:

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

Создайте свой собственный метод 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()
Другие вопросы по тегам