как перебрать несколько вариантов выбора с помощью jquery - PullRequest
21 голосов
/ 04 августа 2009

Мне просто интересно, возможно ли пройти через несколько опций выбора и получить их значения и текст (если выбран один, получить значение и текст, если выбран 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>

все выбранные опции имеют одинаковый класс.

спасибо

Ответы [ 6 ]

47 голосов
/ 04 августа 2009

Это предупредит текст и значения всех выбранных опций (для всех выборов на странице):

$('select > option:selected').each(function() {
    alert($(this).text() + ' ' + $(this).val());
});

См. Ядро / каждый и Селекторы / выбрано:

http://docs.jquery.com/Core/each

http://docs.jquery.com/Selectors/selected

6 голосов
/ 24 марта 2010

для оптгрупп ...

$("select[id^='desu']").children('optgroup').children('option:selected').each( 
    function(id, element) {
        document.write(element.title);
    }
);
3 голосов
/ 04 августа 2009

Эта функция будет возвращать массив пар текст / значение для селекторов, соответствующих данному классу.

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;
}
2 голосов
/ 04 августа 2009

Если все ваши поля выбора начинаются с одинакового идентификатора («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...
}

Это позволяет вам проходитьтолько конкретные поля выбора, если у вас несколько групп.

0 голосов
/ 05 июня 2019

https://jsfiddle.net/kmgoddard/Lfkvm3ar/4/

$("#mybutton").click(function(){
list = new Array();
$('select > option:selected').each(function() {

  list.push($(this).val());

});
 alert(list.toString());
});
0 голосов
/ 04 августа 2009
//Another option

var selected = [];

$('select :has(:selected)').each( function(){

    var $this = $(this);
    selected.push( { text: $this.text(), value: $this.val() );

});

return selected;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...