我有一个显示事件信息的表。其中一列是"State",显示事件所在的州。我希望我的州下拉列表只过滤表中匹配的州。我的当前代码可以做到这一点,但它只返回最后一个匹配的州。我希望我的jQuery过滤器返回所有匹配的州。例如,如果我的表中有两个事件发生在德克萨斯州-如果我在下拉列表中选择德克萨斯州,则只返回其中一个事件。如何让它显示两个德克萨斯州事件?我肯定我错过了一些简单的信息。
我的代码我有一个典型的状态下拉html与所有状态,但这里有一个快速的例子,没有每一个状态:
$("#filter").change(function() {
// console.clear();
var filterValue = $(this).val();
var row = $('.row-conventions');
console.log(filterValue);
row.each(function(i, el) {
if ($(el).attr('data-type') == filterValue) {
row.hide();
$(el).show();
}
});
if ("all" == filterValue) {
row.show();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>Select Your State:</label>
<select class="state" id="filter">
<option value="all" selected="selected">Select a State</option>
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
</select>
我尝试将. each更新为. map,但没有成功。
1条答案
按热度按时间qjp7pelc1#
我只需要将row.hide()移出函数。