Ciao a tutti, tramite una chiamata AJAX ottengo dei dati in questo modo (ho accorciato la stringa per comodità):
codice:
{
"frutta":[
"Angurie - 3"
"Angurie - 5"
"Banane",
"Kiwi",
"Mele",
"Meloni - 3",
"Meloni - 4",
"Meloni - 10",
"Limoni"
]
}
Dovrei creare una cosa tipo questa:
codice:
<select>
<optgroup label="Angurie">
<option>Angurie - 3</option>
<option>Angurie - 5</option>
</optgroup>
<option>Banane</option>
<option>Kiwi</option>
<option>Mele</option>
<optgroup label="Meloni">
<option>Meloni - 3</option>
<option>Meloni - 4</option>
<option>Meloni - 10</option>
</optgroup>
<option>Limoni</option>
</select>
In pratica se c'è un numero mi raggruppa le option con un optgroup
Ho creato questo script, ma non ottengo quello che voglio
codice:
$.each(data.frutta, function(i,value){
if (/\d/.test(value)) {
if($('optgroup').attr('label')==value) {
cb='\n <option>'+value+'</option>';
} else {
cb='\n<optgroup label="'+value.replace(/[^A-Za-z]+/g, '')+'">\n <option>'+value+'</option></optgroup>';
}
} else {
if($('optgroup').attr('label')==value) {
cb='\n</optgroup>\n<option>'+value+'</option>';
} else {
cb='\n<option>'+value+'</option>';
}
}
$('#fruttap').append(cb);
});
bensì questo:
codice:
<select>
<optgroup label="Angurie">
<option>Angurie - 3</option>
</optgroup>
<optgroup label="Angurie">
<option>Angurie - 5</option>
</optgroup>
<option>Banane</option>
<option>Kiwi</option>
<option>Mele</option>
<optgroup label="Meloni">
<option>Meloni - 3</option>
</optgroup>
<optgroup label="Meloni">
<option>Meloni - 4</option>
</optgroup>
<optgroup label="Meloni">
<option>Meloni - 10</option>
</optgroup>
<option>Limoni</option>
</select>
Qualcuno sa come correggere?