2

我有代码:

<div id="parent">
   <div id="firstchild" style="display:none">
   <div id="secondchild">
   <div id="thirdchild" style="display:none">
</div>

所以我想做的是在jquery中找到不隐藏的元素,即。第二个孩子。

我想我应该使用类似于 :hidden 的东西,但我实际上想做相反的事情并找到非隐藏的东西。

有人知道该怎么做吗?找到作为父母孩子的可见div并将其隐藏?

4

3 回答 3

10

您可以尝试:visible选择器:

$('#parent div:visible').hide()
于 2012-07-18T22:13:47.370 回答
3

幸运的是还有一个visible

$('#parent > :visible').hide();
于 2012-07-18T22:14:16.570 回答
1

如果目标是隐藏可见元素,那么没有必要专门找到它们。相反,您可以简单地无条件地隐藏所有潜在元素。

$('#parent > div').hide();

那些可见的子 div 现在被隐藏了。那些已经隐藏的仍然隐藏。

  • 一方面,这是低效的——它隐藏了已经隐藏的元素。
  • 在另一个方面它是有效的 - 它不会浪费精力来识别可见的 div(s)。

实际上,在这和特定的隐藏之间没有太多选择。在这两种情况下,都必须解决所有潜在的元素——要么读取它们,要么写入它们,或者两者兼而有之。

于 2012-07-18T22:44:29.167 回答