Jquery 在隐藏的父对象中查找可见的子对象
使用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
<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"])')