$('#nearbyy').val()
возвращает массив, поэтому вам нужно проверить, находятся ли ваши значения в этом массиве.
Вот решение, близкое к вашему исходному коду. Обратите внимание, что вам также необходимо сначала проверить наличие обоих значений, если вы используете структуру else if
.
jquery Метод inArray()
возвращает -1
, если значение отсутствует в массив.
$(document).ready(function() {
$('#nearbyy').bind('change', function(e) {
const values = $('#nearbyy').val();
if (jQuery.inArray("1", values) > -1 && jQuery.inArray("2", values) > -1) {
$("#Airport").show();
$("#Garden").show();
} else if (jQuery.inArray("1", values) > -1) {
$("#Airport").show();
$("#Garden").hide();
} else if (jQuery.inArray("2", values) > -1) {
$("#Airport").hide();
$("#Garden").show();
} else {
$("#Airport").hide();
$("#Garden").hide();
}
}).trigger('change');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>List of Stores which completed the survey so far</label>
<select multiple for="postage" id="nearbyy" class="form-control">
<option value="">Select...</option>
<option value="1" id ="1">Airport</option>
<option value="2" id ="2">Garden</option>
</select>
<br />
<div id="Airport" class="form-control">
Element1
</div>
<br />
<div id="Garden" class="form-control">
Element2
<br />
<br />
</div>