目前我正在使用下面的代码,效果很好。
$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();
任何优化的代码?(我不能使用同一类)我的意思是如何:visible
正确使用?
目前我正在使用下面的代码,效果很好。
$("#topperAtBaseLevel:visible, #lowerAtBaseLevel:visible, #midAtBaseLevel").hide();
任何优化的代码?(我不能使用同一类)我的意思是如何:visible
正确使用?
该代码似乎很完美;您正在使用 :visible 正确。
如果您想确切了解它的工作原理,可以查看jQuery :visible 选择器帮助页面,但简而言之,它会选择可见元素 =)
这就是实现目标的方法。您正在正确有效地使用选择器。
如果您维护需要隐藏的标签的 ID 数组,然后动态构建选择器以按 ID 查找,则可以使其更快一点。(即使选择器可能更长,这也会更快。按 ID 选择非常快。)
但是,不需要优化,是吗?我们正在谈论从快速闪电到快速双闪电。一个超级骗子 jQuery pro 会做你所做的。
好吧,我能想到的只有:
$('[id$="AtBaseLevel"]:visible').hide();
这将匹配 ID 以 . 结尾的任何元素AtBaseLevel
。请注意,更短并不意味着更快,因为 ID 查找的速度差不多。基于属性的选择器没有那么优化。
你可以这样做:
$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").filter(":visible").hide();
但是,这会导致所有内容都被隐藏,调用.hide()
隐藏元素很好,那里没有错,所以它可能是这样的:
$("#topperAtBaseLevel, #lowerAtBaseLevel, #midAtBaseLevel").hide();