JSFiddle - React, Tailwind, and code Playground
HTML
<select name="firstselect" id="firstselect">
<option value="0">Choose...</option>
<option value="1">Value1</option>
<option value="2" selected>Value2</option>
<option value="3">Value3</option>
</select>
<select name="secondselect" id="secondselect">
<option value="0">Choose...</option>
<option value="myclass1" class="group1">Value11</option>
<option value="myclass1" class="group1">Value12</option>
<option value="myclass1" class="group1">Value13</option>
<option value="myclass2" class="group2">Value21</option>
<option value="myclass2" class="group2">Value22</option>
<option value="myclass2" class="group2">Value23</option>
<option value="myclass3" class="group3">Value31</option>
<option value="myclass3" class="group3">Value32</option>
<option value="myclass3" class="group3">Value33</option>
</select>
JavaScript
var groups = false;
function update_selected() {
// reset the secondselect
$("#secondselect").val(0);
$("#secondselect").find("option[value!=0]").detach();
// re-attach the correct options
$("#secondselect").append(groups.filter(".group" + $(this).val()));
}
$(function() {
groups = $("#secondselect").find("option[value!=0]");
groups.detach();
$("#firstselect").change(update_selected);
// immediately call update_selected to update on page load
$("#firstselect").trigger("change");
});