2012-12-21 15 views
6

Bazı seçeneklerle birden çok seçkim var. Her seçeneğin birden fazla veri özelliği vardır. Veri değerlerinin her birini içeren bir dizi oluşturmak istiyorum.JQuery: Seçtiğim seçeneklerimin veri özelliklerinden oluşan bir dizi oluştur

<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> 

Ve böyle bir şey olması ihtiyaçları için arıyorum sonucu: Ben araştırdım

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

nasıl biriyle bir dizi oluşturmak için benim kod böyle çok benziyor Örneğin Her bir seçenek için veri-özellik değeri, bana bunu [1,2,3] veriyor, ama ihtiyacım olan şeylere ulaşmakta başarısız oldum.

Çok teşekkürler!

cevap

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

DEMO:http://jsfiddle.net/nQ6mE/

+0

Harika çalışıyor! Hizli yanit icin tesekkurler! – murielg

+0

@murielg Rica ederim! – VisioN

+0

bu dizide addClass uygulamak mümkün mü –

6
var arr = []; 
$('#my_select option').each(function(){ 
    var $this = $(this); 
    arr.push([ $this.data('my_id'), $this.data('my_parent'), $this.data('my_name') ]); 
}); 
+0

hızlı yanıt için teşekkür ederiz! Bu da harika çalışıyor! @VisioN'un cevabını biraz daha iyi seviyorum çünkü her veri için $ this.data ('value') yapmak zorunda kalmadan TÜM veri niteliklerini elde edebiliyorum. – murielg

İlgili konular