我在一个页面上有多个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的数据。如何访问所有选择元素的数据
答案 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()