I do a similar thing, however I hide the select2 container which is always the next node over from the start point so it would look like.
$(document).on('change', '.country', function () {
if ($(this).val() == $(this).data('current-countryCode')) {
$('#states').next(".select2-container").show();
}
else {
$('#states').next(".select2-container").hide();
}
});
So I have been taking the same approach you have