获取一页上多个select2选择框的值

时间:2014-05-29 19:19:38

标签: jquery jquery-select2

我在一个页面上有多个select2框,我希望能够访问为每个选择的值。

我尝试将每个选择标记添加到一个类中,例如:" my-select2-boxes"像这样:

<select class="my-select2-boxes">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
</select>

<select class="my-select2-boxes">
  <option value="superman">Superman</option>
  <option value="batman">Batman</option>
</select>

然后我尝试:

 $(".my-select2-boxes").select2("data")

但这只返回第一个选择元素的数据,即Volva和Saab的数据。如何访问所有选择元素的数据

1 个答案:

答案 0 :(得分:2)

它只给你一组数据,因为即使选择器获得了多个元素,它也不能猜测&#34;你想要返回所有元素对象的数据。因此,你应该使用jQuery的.each(),这将允许你根据需要征服EACH元素的数据。

如:

$(function() {
    var selData = new Array();
    $(".my-select2-boxes").each(function(i) {
        //  I'm not familiar with this plugin, but by your use,
        //  I assume calling .select2('data') returns the value
        //  of some custom div made from the select box?
        selData.push($(this).select2('data'));
    });
    console.log(selData);
})

无论何时在jQuery中使用多元素可能的选择器,您都将获得所有匹配元素的返回对象。该对象包含&#34;元素对象&#34;每个元素。但是,如果您随后调用返回字符串的内容(例如.text()),它将只选择第一个元素对象并仅为您提供为该对象找到的内容。如果您需要多个元素的基本返回,则需要.each()