Javascript 从jQuery对象集合中获取可见信息
我有一行代码:Javascript 从jQuery对象集合中获取可见信息,javascript,jquery,Javascript,Jquery,我有一行代码: var filterInputs = $(this).siblings('.filterInputs'); 它对filterInputs执行一些操作。稍后,我想将我收集的FilterInput减少到那些可见的 显然,我可以这样做: var visibleFilterInputs = $(this).siblings('.filterInputs:visible'); 但这似乎效率低下,因为我已经参考了我希望减少的收藏 有没有这样的说法: //TODO: Example var
var filterInputs = $(this).siblings('.filterInputs');
它对filterInputs执行一些操作。稍后,我想将我收集的FilterInput减少到那些可见的
显然,我可以这样做:
var visibleFilterInputs = $(this).siblings('.filterInputs:visible');
但这似乎效率低下,因为我已经参考了我希望减少的收藏
有没有这样的说法:
//TODO: Example
var visibleFilterInputs = $(filterInputs:visible);
var visibleFilterInputs = filterInputs.filter("div:visible");
不必再次迭代DOM树?谢谢你完全正确,没有理由回忆DOM元素,因为jQuery对象中已经有它们了。这正是
.filter()
方法的作用:
试试这个:
var visibleFilterInputs = filterInputs.filter(":visible");
下面是一个例子:
请注意,最好针对特定的HTML标记,例如
,以使:可见的选择器更有效一些(因为它不是CSS规范的一部分,无法通过本机方法进行优化)。至少在您的情况下,您已经在使用filterInputs
类。不管怎样,可能是这样的:
//TODO: Example
var visibleFilterInputs = $(filterInputs:visible);
var visibleFilterInputs = filterInputs.filter("div:visible");
但是只有在适用的情况下才能。我的意思是,即使选择多个已知元素标记也可能更好:
var visibleFilterInputs = filterInputs.filter("div:visible, p:visible");