我有10个下拉列表(启用AJAX模式的Drupal 7中的视图公开过滤器),如果选择了默认选项,则需要向每个列表添加额外的类"test“。并从未选择默认选项的列表中删除类"test“。我有:
$('.selDiv option:eq(0)').prop('selected', true).jQuery("select").addClass("test");
它将"test“类添加到所有下拉列表中。但是,如果您在任何列表中选择了任何非默认值,那么所有列表的“测试”类(即使选择了默认选项)都会消失,直到页面重新加载时才会再次出现。
发布于 2018-04-12 08:44:46
为此,只需向change
元素添加一个select
事件处理程序,该元素将检查所选option
的索引,然后根据需要添加或删除test
类:
$('.selDiv option:eq(0)').prop('selected', true)
$("select").addClass("test").on('change', function() {
var optionIndex = $(this).find('option:selected').index();
$(this).toggleClass('test', optionIndex == 0);
});
.test {
border: 1px solid #C00;
outline: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="selDiv">
<option>Please select</option>
<option>Foo</option>
<option>Bar</option>
</select>
<select class="selDiv">
<option>Please select</option>
<option>Foo</option>
<option>Bar</option>
</select>
https://stackoverflow.com/questions/49791847
复制相似问题