我有一个下拉列表,以及默认使用 css display:none
的元素列表。目前,从下拉列表中选择元素时,它将更改为display:block
我缺少的是,一旦选择了新元素,如何将元素更改回display:none
。我知道我可以编写一个循环来不断检查每个元素并将其更改为display:none
但这似乎很麻烦。我真正的问题有大约 100 个元素,当其中 99 个元素已经被隐藏时,重新隐藏所有这些元素似乎很浪费。
好奇在jQuery(或javascript(中做到这一点最优雅的方法是什么。我所拥有的小提琴在这里:
https://jsfiddle.net/3w66k51z/4/
谢谢!
我在.show((调用之前添加了$(".sReport").hide();
以隐藏所有元素。
jQuery.hide(( 会将元素的显示设置为 none
斯菲德尔
您可以添加状态,以便您知道当前显示的项目(如果有(并仅隐藏该元素。我知道您不想隐藏所有项目,因为它们中的大多数已经隐藏。
这是这个想法的简单实现。
(我想你真正的问题涉及比小提琴更多的隐藏项目。如果不是 - 也许即使如此 - 这可能是一个过早的优化,对所有项目调用.hide()
或任何内容都没有错。
创建元素数组,然后创建一个函数来隐藏所有元素,但不隐藏您想要显示的元素。