JSFiddle - React, Tailwind, and code Playground

by Osman Salihovic

HTML

<select id="test">
   <option value='xxx'> xXx </option>    
   <optgroup label="Letters">
       <option value='a'> A </option>
       <option value='b'> B </option>
       <option value='c'> C </option>
       <option value='d'> D </option>
   </optgroup>
     <optgroup label="Letters2">
        <option value='a1'> 1 </option>
        <option value='a2'> 2 </option>
        </optgroup>
   <option value='zzz'> zZz </option>
</select>

JavaScript

$(document).ready(function () {
var mtest = "[";
var i = 0;
var j = 0;

$("select").children().each(function() { 
 if (i==0) i+=1; else  mtest += ','; 
 j = 0;
if ($(this).children().length ==0) { 
     mtest += '{"' + $(this).attr('value') + '":"' +  $.trim($(this).html()) + '"}';
} else {
    mtest += '{"' + $(this).attr('label') + '":{';
    $(this).children().each(function() { 
        if (j==0) j+=1; else  mtest += ','; 
        mtest += '"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"';
    
    });
  mtest += '}';
}

;})
mtest += ']';
document.write(mtest);

});