javascript - 如何使用 onchange 通过 jquery 更改显示(显示/隐藏)的列表?

标签 javascript html jquery css asp.net-mvc

这是我的下拉菜单。

<select id="sortBySelector" onchange="chooseSort(value)" style="display:block;border-color: #e0e0e0;">
                    <option value="nameSort" selected>Alphabetical</option>
                    <option value="gradSort">Graduation Date</option>


                </select>

我有两个 <ul> id=“nameSort”和“gradSort” 我编写了仅显示所选代码的 jquery 代码。 这个我试过了

<script>
function chooseSort(value) {
    $("#nameSort").hide();
    $("#gradSort").hide();
    $(value).show();


}`

但当它处于字母顺序选项时它会显示两个列表,而当我单击毕业选项时它什么也不显示。我不确定为什么会这样。如果你能帮忙,请告诉我。谢谢你的时间

最佳答案

考虑给定值的作用:

$(value).show();

如果值为 gradSort 那么你在做:

$("gradSort").show();

这是一个不正确的选择器。如果您按 id 查找,那么开头缺少 #。您可以将其添加到值中:

<option value="#nameSort" selected>Alphabetical</option>
<option value="#gradSort">Graduation Date</option>

或者,如果出于其他原因您不想更改值,您可以将其添加到选择器中的字符串中:

$('#' + value).show();

或:

$(`#${value}`).show();

it shows both lists when its on the Alphabetical option

听起来它在页面首次加载 时显示了两个列表。如果是这种情况,您可以在页面加载时手动调用该函数来设置初始状态:

chooseSort('#nameSort');

或:

chooseSort('nameSort');

(取决于您在上面使用的解决方案)

关于javascript - 如何使用 onchange 通过 jquery 更改显示(显示/隐藏)的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62437659/

相关文章:

javascript - 优化node express中的自定义模块代码

css - 是否可以在 html5 页面中使底部边框自动调整大小(根据最后一行的文本宽度)?

html - 正确的 iOS 网络剪辑集成(网络应用程序图标)

javascript - jQuery 动态居中未按预期工作

javascript - Ajax 数据类型 : JSON respond is: OK but No output?

javascript - 从外部调用 Controller 功能

javascript - jquery中$(this)是什么意思

网页背景

jquery - Javascript,为所有相同类型的元素添加动态类

javascript - 保护 Angular 属性