jquery - 试图在 div 中查找选定的值和内容以添加类
问题描述
当页面使用选择下拉列表加载时,我需要该值来显示/隐藏结果(或添加类)。我的结果正在改变,但不是页面加载。目前,所有结果都会在页面加载时显示,我只希望在页面加载时显示状态为“AL”的结果。
$(document).ready(function() {
if ( ($('.broker-chosen select option:selected').val()=='AL') && (!$(".broker-locations_state:not(:contains('AL'))") ) ) {
$(".broker-results").addClass("chosen-results_wonky");
}
});
.chosen-results_wonky { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="broker-chosen">
<select><option selected="" value="AL">Alabama</option><option value="AR">Arkansas</option></select>
</div>
<div class="broker-results row"><div class="broker-locations_state">AR</div> </div>
<div class="broker-results row"><div class="broker-locations_state">AL</div> </div>
解决方案
由于您已经change
设置了可以正常工作的事件处理程序,因此只需触发一个change
事件,您现有的代码即可处理它。
看看下面的代码
$(document).ready(function() {
$('select').on('change', function() {
const selection = this.value;
const allLocations = $('.broker-results').addClass('chosen-results_wonky');
allLocations.filter(function() {
return $('.broker-locations_state',this).text() === selection;
}).removeClass('chosen-results_wonky');
}).trigger('change');
});
.chosen-results_wonky {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="broker-chosen">
<select>
<option selected="" value="AL">Alabama</option>
<option value="AR">Arkansas</option>
</select>
</div>
<div class="broker-results row">
<div class="broker-locations_state">AR</div>
</div>
<div class="broker-results row">
<div class="broker-locations_state">AL</div>
</div>
推荐阅读
- node.js - react js中的数据表服务器端处理
- php - Textarea 未在表单中发布值
- jquery - 如何为每个动态创建的“搜索结果块”添加弹出窗口
- javascript - 如何通过仅具有其类名来获得真正的按钮单击处理 html/javascript 代码?
- spring - Spring中的硬编码URL
- java - 在 Cloud Firestore 中使用自定义对象会导致性能问题吗?
- mysql - 在 Windows 中将 MySQL 作为服务启动两次
- c# - 用于获取 2 个不同枚举的排列的最佳集合类型是什么
- react-native - 以编程方式设置反应原生 VirtualizedList 的滚动索引
- android - 使用 qr 码从 google play 安装应用程序