I have a 5 sets of divs with common class names. I need to display child divs based on the value of the select element, which is also under a child div. But absolutely nothing is happening. What am I doing wrong?
$('.item-chooser').each(function() {
var media = $(this).val();
if (media == 'fontawesome') {
$(this).parent('.cta-block').children('.cta-fa-icon').slideDown();
} else if (media == 'image') {
$(this).parent('.cta-block').children('.cta-image-upload').slideDown();
}
$(this).change(function() {
var media = $(this).val();
if (media == 'fontawesome') {
$(this).parent('.cta-block-item-wrap').children('.cta-image-upload').slideUp();
$(this).parent('.cta-block-item-wrap').children('.cta-fa-icon').slideDown();
} else if (media == 'image') {
$(this).parent('.cta-block-item-wrap').children('.cta-fa-icon').slideUp();
$(this).parent('.cta-block-item-wrap').children('.cta-image-upload').slideDown();
}
});
});
.cta-block-item-wrap {
border-bottom: 1px solid #eeeeee;
padding: 10px 0;
}
.cta-image-upload,
.cta-fa-icon {
display: none;
}
.cta-block-item-wrap > label {
font-size: 12px;
font-weight: bold;
margin: 0 50px 0 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cta-block">
<div class="cta-block-item-wrap cta-icon-image">
<label for="item-chooser">FA Icon/Image:</label>
<select class="item-chooser" name="item-chooser">
<option value="fontawesome">FontAwesome Icon</option>
<option value="image">Image</option>
</select>
</div>
<div class="cta-block-item-wrap cta-image-upload">
<label for="block-image">Upload Image:</label>
<input name="block-image" class="block-image" type="text" value="">
<input type="button" class="cta-insert-image button button-primary button-large" value="Upload">
</div>
<div class="cta-block-item-wrap cta-fa-icon">
<label for="fa-icon-class">Choose FA Icon:</label>
<input type="text" name="fa-icon-class" class="fa-icon-class" value="">
</div>
</div>
<div class="cta-block">
<div class="cta-block-item-wrap cta-icon-image">
<label for="item-chooser">FA Icon/Image:</label>
<select class="item-chooser" name="item-chooser">
<option value="fontawesome">FontAwesome Icon</option>
<option value="image">Image</option>
</select>
</div>
<div class="cta-block-item-wrap cta-image-upload">
<label for="block-image">Upload Image:</label>
<input name="block-image" class="block-image" type="text" value="">
<input type="button" class="cta-insert-image button button-primary button-large" value="Upload">
</div>
<div class="cta-block-item-wrap cta-fa-icon">
<label for="fa-icon-class">Choose FA Icon:</label>
<input type="text" name="fa-icon-class" class="fa-icon-class" value="">
</div>
</div>