如何以更简单的方式检查多个div的可见性?

时间:2010-04-02 12:29:50

标签: javascript jquery css-selectors visible

目前我正在使用以下代码,效果很好。

$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();

任何优化的代码? (我不能使用同一课程) 我的意思是如何正确使用:visible

4 个答案:

答案 0 :(得分:0)

这段代码看起来很完美;你正在使用:正确可见。

如果你想知道它是如何工作的,你可以看一下jQuery :visible selector help page,但是用几句话来说它选择了可见元素=)

答案 1 :(得分:0)

这是实现目标的方法。您正确有效地使用选择器。

如果您维护需要隐藏的标记ID的数组,可以使其快一点,然后动态构建您的选择器以按ID查找。 (即使选择器可能更长,这也会更快。按ID选择非常快。)

但是,不需要优化,是吗?我们正在谈论从快速闪电到双重快速闪电。一个超级专业的jQuery pro会做你已经完成的事情。

答案 2 :(得分:0)

嗯,我能想到的是:

$('[id$="AtBaseLevel"]:visible').hide();

这将匹配ID以AtBaseLevel结尾的任何元素。请注意,较短并不意味着更快,因为ID查找的速度和它一样快。基于属性的选择器不是那么优化的。

答案 3 :(得分:0)

你可以这样做:

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").filter(":visible").hide();

然而,这导致一切都被隐藏,在隐藏元素上调用.hide()很好,没有错,所以它可能就是这样:

$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").hide();