codice per impostare un valore di opzione casella di selezione come un object

in una pagina html che ho, ho una casella di selezione come questa con valori.

 a f  

Voglio passare un array o un object javascript come valore dell’opzione. in questo momento sta trattando il valore dell’opzione come una stringa.

Voglio che sia una matrice in modo che io possa accedervi da

this.value.name, this.value.age nella funzione filler.

È ansible?

Non sarà ansible memorizzare oggetti / array nell’attributo value , tuttavia un’opzione potrebbe essere quella di utilizzare gli attributi data-* che supportano json automaticamente con jQuery 1.4.3+

  

E usando .change()

 $("select").change(function(){ alert($(this).find(":selected").data("value").age); }); 

Esempio su jsfiddle

No, non proprio così. I valori devono essere stringhe. Consiglio vivamente di utilizzare qualcosa come il metodo jQuerys .data() per contenere Arrays o Objects in una proprietà expando.

Se deve essere nel valore, devi solo decodificare JSON (.parse):

 var myValue = JSON.parse(this.value); myValue.age; // 40 myValue.name // rajiv 

Ma ancora una volta, non penso che questa sia una buona soluzione. Dai un’occhiata a http://api.jquery.com/jQuery.data/ Inoltre, jQuery converte automaticamente Matrici e Oggetti se inserisci le stringhe JSON in qualsiasi attributo di data- HTML5. Per esempio:

  

Se accedi a quel nodo con jQuery ora, abbiamo automaticamente ottenuto quell’object nel suo expando di dati

 $('option').data('info').name; // === rajiv 

È ansible utilizzare parseJSON per convertire la stringa in un object quando lo si utilizza, ma il valore deve essere una stringa.

  var option = $('select').val(); var selected = $.parseJSON(option); alert( selected.name + ': ' + selected.age );