2009-08-04 47 views
18

我只是想知道如果有可能要经过多个选择的选项,如果一个选择获得的价值和文本得到他们的价值观和文本(迭代,如果选择2同时获得他们的值和文本等)如何通过多选选项与jQuery

我有一个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> 

所有选择选项都具有相同的类别。

感谢

回答

40

这将提醒所有选定选项文本和值(页面上的所有选择):

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

见核心/每选择器/选择:

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

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

+0

它不应该是:$('#选择> ... – jon 2015-07-23 15:05:29

+0

它一个定义不清的用例,其中类,姓名,身份证和标签都是一样的名称。$(“选择> ... $(”#选择> ...,$(。选择......将所有的工作 – 2015-11-19 20:06:19

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; 
} 
0
//Another option 

var selected = []; 

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

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

}); 

return selected; 
2

如果你的所有选择框开始了类似的ID( “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

感谢。我可以在代码中使用.change功能以及上面的回复像 .... .change.each(函数(){ – amir 2009-08-04 14:23:32

6

为optgroups ...

$("select[id^='desu']").children('optgroup').children('option:selected').each( 
    function(id, element) { 
     document.write(element.title); 
    } 
); 
相关问题