11

我有一个带有一些选项的选择倍数。每个选项都有多个数据属性。我想创建一个包含其每个数据值的数组。例如我的代码看起来很像这样:

<select multiple id='my_select'>
<option data-my_id='1' data-my_parent='3' data-my_name='option1'>My first option</option>
<option data-my_id='2' data-my_parent='3' data-my_name='option2'>My second option</option>
<option data-my_id='3' data-my_parent='3' data-my_name='option3'>My third option</option>
</select>

我正在寻找的结果需要是这样的:

[1,3,option1], [2,3,option2], [3,3,option3]

我研究了如何使用每个选项的数据属性值之一创建一个数组,给我这个 [1,2,3],但我没有成功地想出我需要的东西。

非常感谢!

4

2 回答 2

18
var array = $("#my_select > option").map(function() {
    return [$.map($(this).data(), function(v) {
        return v;
    })];
}).get();

演示:http: //jsfiddle.net/nQ6mE/

于 2012-12-21T22:33:45.663 回答
9
var arr = [];
$('#my_select option').each(function(){
  var $this = $(this);
  arr.push([ $this.data('my_id'), $this.data('my_parent'), $this.data('my_name') ]);
});
于 2012-12-21T22:33:16.800 回答