【发布时间】:2021-02-04 14:44:38
【问题描述】:
我有这个选择下拉列表。当每年根据班级选择div时,将显示其他的将被隐藏。很直接。但问题是,在页面加载时,它首先显示所有 div,直到我将选择更改为 2021。它应该首先显示 2020 div,因为它是 selected 值。这是我的代码。
$(document).ready(function () {
$('#event-slider').on('change', function () {
if (this.value == '2020') {
$(".2020").show();
$(".2021").hide();
} else {
$(".2020").hide();
}
if (this.value == '2021') {
$(".2021").show();
$(".2020").hide();
} else {
$(".2021").hide();
}
});
});
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<form class="needs-validation" novalidate autocomplete="off">
<select class="custom-select" id="event-slider">
<option value="2020" selected>2020</option>
<option value="2021">2021</option>
</select>
</form>
<div class="2020"><p>Year 2020</p></div>
<div class="2021"><p>Year 2021</p></div>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
这是我研究过的解决方案,但问题似乎仍然存在。
$('select[id^="event-slider"] option[value="2021"]').attr("selected","selected");
如果有人知道更好的解决方案或我犯的任何错误,请帮助我。非常感激。谢谢
【问题讨论】:
标签: javascript html jquery css