JSFiddle - React, Tailwind, and code Playground
HTML
<div id="additional-number-options-284">
<select class="form-control" id="select-additional-number-country-284">
<option disabled="disabled" selected="selected">Select a country</option>
<option value="7818">Country 1</option>
<option value="7814">Country 2</option>
</select>
<select id="select-additional-number-state-284">
<option disabled="disabled" selected="selected">Select a state</option>
<option data-product="7818" value="65">State 4</option>
<option data-product="7818" value="66">State 5</option>
<option data-product="7814" value="62">State 1</option>
<option data-product="7814" value="63">State 2</option>
<option data-product="7814" value="64">State 3</option>
</select>
<select id="select-additional-number-plan-284">
<option disabled="disabled" selected="selected">Select a plan</option>
<option data-product="7818" value="7819">Plan D (+$5.00)</option>
<option data-product="7818" value="7820">Plan E (+$15.00)</option>
<option data-product="7814" value="7815">Plan A (+$10.00)</option>
<option data-product="7814" value="7816">Plan B (+$8.00)</option>
<option data-product="7814" value="7817">Plan C (+$12.00)</option>
</select>
</div>
JavaScript
jQuery("[id^=select-additional-number-country-]").change(function () {
var id = this.id.split('-').pop();
jQuery("#select-additional-number-state-" + id)
.find("option")
.show()
.not("option:first, option[data-product='" + this.value + "']")
.hide();
jQuery("#select-additional-number-state-" + id).val(
jQuery("#select-additional-number-state" + id).find("option:visible:first").val());
jQuery("#select-additional-number-plan-" + id)
.find("option")
.show()
.not("option:first, option[data-product='" + this.value + "']")
.hide();
jQuery("#select-additional-number-plan-" + id).val(
jQuery("#select-additional-number-plan" + id).find("option:visible:first").val());
}).change();