Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在隐藏的父对象中查找可见的子对象_Jquery_Html - Fatal编程技术网

Jquery 在隐藏的父对象中查找可见的子对象

Jquery 在隐藏的父对象中查找可见的子对象,jquery,html,Jquery,Html,使用jQuery,有没有一种方法可以在不使容器本身可见的情况下获取“隐藏”容器中包含的所有“可见”元素 例如 <div id="container" style="display:none"> <div>Visible</div> <div style="display:none">Hidden</div> <div>Another Visible</div> <div style="dis

使用jQuery,有没有一种方法可以在不使容器本身可见的情况下获取“隐藏”容器中包含的所有“可见”元素

例如

<div id="container" style="display:none">
  <div>Visible</div>
  <div style="display:none">Hidden</div>
  <div>Another Visible</div>
  <div style="display:none">Another Hidden</div>
</div>
。。他们将返回第一个和第三个
子级

但是,由于容器本身是隐藏的,所以它不会返回任何内容


这是否可以在不使容器可见的情况下实现?

基于
显示
样式属性值进行筛选

var$visible=$(“#container div”).filter(函数(){
返回this.style.display!==“无”
});
//或者使用jQuery css()方法获取样式值
var$visible1=$(“#容器div”).filter(函数(){
返回$(this.css('display')!='none'
});
console.log($visible.text())
console.log($visible1.text())

看得见的
隐藏的
另一个可见的
另一个隐藏的

特定示例的另一个选项是使用
:not()
选择器

var els=$(“#container div”).filter(“:not([style='display:none'])”);
console.log(els.length)

看得见的
隐藏的
另一个可见的
另一个隐藏的

使用样式属性和jquery非选择器

$('#container :not([style="display:none"])')

不,那是不可能的<代码>显示:无影响元素及其所有子体,它们甚至不会被渲染。而没有被渲染的东西,一开始就不可能是可见或不可见的。同意@CBroe。顺便说一句,您可以尝试使用
style=“visibility:hidden”
OK、@CBroe,这很有意义。因此,看看孩子的风格,而不是使用
:visible
@AlivetoDie,这有意义吗?
可见性的问题是:隐藏的
将不动产保留在屏幕上,而这并不是我们想要的。。。我不知道将函数传递给
过滤器
方法的能力。。。这正是我需要的。谢谢:-)@freefiller:你可以使用callback---
$('#container :not([style="display:none"])')