JSFiddle - React, Tailwind, and code Playground

by JonNorman

HTML

<select name="filteritem" id="filteritem">
  <option value="">- Select One-</option>
  <option value="Feliformia">Feliformia</option>
  <option value="Caniformia">Caniformia</option>
  <option value="DoesnotExist">Span Doesn't Exist</option>
  <option value="PDoesNotExist">P Doesn't Exist</option>
</select>
    
<span class="item-ii lid-34 bigtitle">Feliformia</span>
<span class="item-ii lid-2 bigtitle">Caniformia</span>
<span class="item-ii lid-5 bigtitle">PDoesNotExist</span>
    
    ...
    
<p class="ptext lid-34 moderate-me">Stenoplesictidae (shown for Feliformia)</p>
<p class="ptext lid-34 moderate-me">Percrocutidae (shown for Feliformia)</p>
<p class="ptext lid-2 moderate-me">Amphicyonidae (shown for Caniformia)</p>
<p class="ptext lid-2 moderate-me">Canidae (shown for Caniformia)</p>

JavaScript

$(document).ready(function() {
    $('select#filteritem').change(function() {
        var itemselection = $(this).val();
        var foundItemText = false;
        $('span.item-ii').each(function() {
            var itemtext = $(this).html();
            if (itemtext == itemselection) {
                $(this).show();
                foundItemText = true;
                var allClasses = $(this).attr("class").split(" ")
                var lidClass = '';
                for (var i = 0; i <= allClasses.length; i++) {
                    if (allClasses[i].substr(0, 4) == "lid-") {
                        lidClass = allClasses[i];
                        break;
                    }
                }
                if (lidClass == '') {
                    $('p.ptext').hide();
                } else {
                    $('p.ptext').filter('.' + lidClass).show().end().not('.' + lidClass).hide();
                }
            } else {
                $(this).hide();
            }
        });
        if (!foundItemText) {
            $('p.ptext').hide();
        }
    }).change();
});