.on( 'click, function () {
, а просто показывать то или иное, исходя из дата-атрибутовdata='apple'
.<select class="b-fruits">
<option>apple</option>
<option>orange</option>
<option>banana</option>
</select>
<select class="b-discounts">
<option data-type="apple">100</option>
<option data-type="apple">200</option>
<option data-type="orange">300</option>
<option data-type="banana">400</option>
</select>
$('.b-fruits').change(function() {
$('.b-discounts')
.val(null)
.find('option')
.hide()
.filter(`[data-type="${$(this).val()}"]`)
.show();
}).change();
// или
const fruits = document.querySelector('.b-fruits');
const discounts = document.querySelector('.b-discounts');
fruits.addEventListener('change', ({ target: { value } }) => {
discounts.value = null;
for (const n of discounts.options) {
n.hidden = n.dataset.type !== value;
}
});
fruits.dispatchEvent(new Event('change'));
$( function() {
var frutsEl = $('.b-fruts');
var discountsEl = $('.b-discounts');
frutsEl.on('change', function(item) {
var frut = $(this)
.find('option[value="' + $(this).val() + '"]').attr('data');
discountsEl
.find('option')
.hide()
.filter('[data="' + frut + '"]')
.show();
discountsEl
.val(
discountsEl
.find('option[data="' + frut + '"]:first')
.attr('value')
);
});
frutsEl.change();
} );