如何使用jQuery基于先前选择器选择元素

3

可能重复:
Jquery:选择中的选择

首先,我从某个页面选择了div元素,代码如下:

var divs = $('div');

如何从divs中选择那些具有someClass的div。我尝试使用:
divs.find('.someClass') or divs.find('div.someClass')

两者都不能正常工作。

如果我想完成这个任务,我该怎么办?顺便说一下,我知道可以使用$('div.someClass')


1
请花些时间阅读API文档 - Felix Kling
3个回答

7
您可以使用.filter()方法:
var someClassDivs = divs.filter('.someClass');

这将把元素集合减少到与选择器匹配的那些元素(换句话说,那些具有“someClass”类名的元素)。

你当前使用的.find()不起作用,因为它查看后代元素。你正在尝试减少匹配的集合,该集合由(有效地)兄弟姐妹组成。


0
使用过滤器函数。
   var divs = $('div');
    divs.filter(function(){
    return $(this).hasClass("some_class");
                           })

0

你为什么不一开始就使用$('div.someClass')呢?你需要一个所有div的数组来做其他事情吗?首先选择所有div,然后过滤数组比仅使用类名作为选择器使用更多操作,并且可能会更慢。

我的建议是:

var divs = $('div.someClass')

是的,我不仅仅想要那些带有someClass类名的div。我想让所有的div做其他的事情。 - Dorsey
啊...那么,James Allardice的答案完全符合您的需求 :) - djeglin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接