Как выполнить итерацию с помощью нескольких опций выбора с помощью jquery
Мне просто интересно, можно ли пройти через несколько опций выбора и получить их значения и текст (если один выбран, получите значение и текст, если выбрано 2, получите оба значения и текст и т.д.)
У меня есть 15 полей выбора на одной странице?
любая помощь будет оценена.
<form>
<select class="select" name="select3" id="select3">
<option value="0">0</option>
<option value="1.99">1</option>
<option value="1.99">2</option>
<option value="1.99">3</option>
<option value="1.99">4</option>
<option value="1.99">5</option>
<option value="1.99">6</option>
<option value="1.99">7</option>
<option value="1.99">8</option>
</select>
</form>
<form>
<select class="select" name="select" id="select">
<option value="0">0</option>
<option value="1.99">1</option>
<option value="1.99">2</option>
<option value="1.99">3</option>
<option value="1.99">4</option>
<option value="1.99">5</option>
<option value="1.99">6</option>
<option value="1.99">7</option>
<option value="1.99">8</option>
</select>
</form>
все опции выбора имеют один и тот же класс.
спасибо
Ответы
Ответ 1
Это будет предупреждать все текст и значения выбранных опций (для всех выбранных на странице):
$('select > option:selected').each(function() {
alert($(this).text() + ' ' + $(this).val());
});
См. раздел Core/each и Selectors/selected:
http://docs.jquery.com/Core/each
http://docs.jquery.com/Selectors/selected
Ответ 2
для optgroups...
$("select[id^='desu']").children('optgroup').children('option:selected').each(
function(id, element) {
document.write(element.title);
}
);
Ответ 3
Эта функция вернет массив пар текста/значения для выбора, соответствующего данному классу.
function getSelects(klass) {
var selected = [];
$('select.' + klass).children('option:selected').each( function() {
var $this = $(this);
selected.push( { text: $this.text(), value: $this.val() } );
});
return selected;
}
Ответ 4
Если все ваши поля выбора начинаются с аналогичного идентификатора ( "select_1", "select_2", "select_3" и т.д.), вы можете просто сделать:
var arr = [];
$("select[id^='select_']").children('option:selected').each(function(){
//you will do this once for every selected item...
}
Это позволяет вам перебирать только определенные поля выбора, если у вас есть несколько группировок.
Ответ 5
//Another option
var selected = [];
$('select :has(:selected)').each( function(){
var $this = $(this);
selected.push( { text: $this.text(), value: $this.val() );
});
return selected;
Ответ 6
https://jsfiddle.net/kmgoddard/Lfkvm3ar/4/
$("#mybutton").click(function(){
list = new Array();
$('select > option:selected').each(function() {
list.push($(this).val());
});
alert(list.toString());
});